采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
ListNode cur = this; for (int i = 1; i < arr.length; i++) {cur.next = new ListNode(arr[i]); cur = cur.next; }循环之前把数组中的第一个元素添加进了链表中,进入循环后,第二句话不加的话怎么出现只能添加第一个元素和最后一个元素的情况?
第二句话的作用是把cur这个Node型变量指向cur->next,即当前cur节点的下一个节点,之后在下一次循环中,调用第一句话,才能把新new出来的Node挂接在链表中啊!:)
其实,整个逻辑,和我们自己实现链表添加逻辑是一致的。只不过,在这里,我们一气儿把要添加进链表的所有元素以数组的形式给出来了,而在上一章我们自己实现的链表中,每次add只能处理一个元素而已。在这里,这个cur = cur.next,其实和我们在自己实现的链表的add函数中(https://github.com/liuyubobobo/Play-with-Data-Structures/blob/master/04-Linked-List/02-Add-Elements-in-LinkedList/src/LinkedList.java),65-66行这个循环,不断后移prev的道理是一样的:)
加油!:)
登录后可查看更多问答,登录/注册
动态数组/栈/队列/链表/BST/堆/线段树/Trie/并查集/AVL/红黑树…
10.3k 16
1.4k 17
1.3k 14
1.2k 14