请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

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

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

正在回答 回答被采纳积分+3

1回答

liuyubobobo 2018-11-06 02:04:15

第二句话的作用是把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 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信