关于查找尾节点,有问题:
Node node = this.head;
while(true){
if(node.next==null) break;
node = node.next;
}
问题是:
Node node = this.head;
node节点第一次是指向head的,所以,node.next就是指向head节点的地址,
那么此时,运行第四行代码:
node = node.next;
node指向node.next节点(就是head的地址),node不就是一直指向head节点吗?
若想向后移动,不应该是
node= node.next.next //可能代码不对,但就是这个意思
即: node.next (head的地址) 然后再next(head的地址的next,就是第二个节点)
我能想到解释的通的逻辑是:
node=this.head,就是把head赋值给node了,就相当于node就是head节点,所以node.next就是些相当于head.next。
但是,此时运行 node = node.next
因为node是head节点,相当于 head= head.next,这总理解下,node又不动了。。。
这里真的非常晕,希望老师能详细解释一下,我两个想法到底哪里想错了。。。