79行,新添加的1结点指向新链表最前端,那下一次再添加的2结点也指向链表最前端,链表结构是 头结点—2—1这样吗
80行,cur是添加到链表上的那个位置吖,我理解代码是又添加到了最前端,那不是没有完全反转了吗?
求解大神~
cur 不是添加到链表的什么位置,这个循环体中
比如 cur = 1->2->3->4....
假设你的原始链表数据是1,2,3,4
第一次reverseHeader.next是空,此时cur就是 1-->null,reverseHeader.next = 1-->null;
到第二次的时候,首先旧的链表cur是2-->3,替换cur.next变成了2-->1-->null,然后将cur放置到reverseHeader.next,此时reverseHeader.next 变成了 2-->1-->null,此时reverseHeader.next已经是翻转的数据了
79行:第一次循环,获取链表第一个节点,去掉后面所有节点(这时reverseHead是一个新节点的开头)
80行:保存79行获取的第一个节点留着下一次用,下一次绑定到新节点的next上,以此类推,第一个节点绑定到了第二个节点上,第二个节点绑定到了第三个节点上,第三个节点绑定到了第四个节点上, 翻转成功