206反转链表

因为我总是记不住怎么做,所以总结一下

和普通的交换两个数字类比

首先我需要一个prev作为表头一开始的空节点,即当前节点的上一个节点;

ListNode prev = null;

其次,我需要一个cur指向当前节点,整体操作上没有用原来的head,这样会改动原来的链表,head会丢失原有链表;

ListNode cur = head;

之后要进入循环,只要当前节点不是空,就持续循环

在内部建立nxt节点,nxt指向当前节点的下一个节点,保证不会丢失;

ListNode nxt = cur.next;

然后就是后面的往前,cur.next的值指向前一个节点即prev;

cur.next = prev;

前一个节点指向当前节点

prev = cur;

当前节点转到nxt记录的原来的下一个节点;

cur = nxt;

循环内部收尾相连,结束。

最后输出prev就可以了

版权声明:
作者:Paul
链接:https://www.15ivyy.site/index.php/2024/12/04/206fzlb/
来源:somethingFromPaul
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>