这个链表怎么构造的,有点蒙啊p.next 赋值为list(i)然后又把p.next赋值给p?
来源:5-4 尾递归优化 (tailrec)

慧___
2020-05-26
val MAX_NODE_COUNT = 100000
val head = ListNode(0)
var p = head
for(i in 1… MAX_NODE_COUNT){
p.next = ListNode(i) //这里是构造新节点赋值给p的next
p = p.next!!//这里又把p的next节点赋值给了p
}
这岂不是所有节点的值都用一样了吗?
写回答
1回答
-
bennyhuo
2020-05-26
不一样呀,
head 的值是 0。
第一次循环时,i = 1,p.next 的值初始化为 1,然后我们把 p 的值赋值为 p.next,此时 p.next 是 null,p 的值是 1
第二次循环时,i = 2,p.next 的值初始化为 2,然后我们把 p 的值赋值为 p.next,此时 p.next 是 null,p 的值是 2
。。。
00
相似问题