关于为链表添加构造方法的问题

来源:5-2 测试自己的Leetcode链表代码

qq_那抹思念因迩泛滥_0

2018-11-05

ListNode cur = this; for (int i = 1; i < arr.length; i++) {cur.next = new ListNode(arr[i]); cur = cur.next; }循环之前把数组中的第一个元素添加进了链表中,进入循环后,第二句话不加的话怎么出现只能添加第一个元素和最后一个元素的情况?

写回答

1回答

liuyubobobo

2018-11-06

第二句话的作用是把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的道理是一样的:)


加油!:)

0
0

玩转数据结构

动态数组/栈/队列/链表/BST/堆/线段树/Trie/并查集/AVL/红黑树…

6221 学习 · 1704 问题

查看课程