File tree 1 file changed +27
-0
lines changed
1 file changed +27
-0
lines changed Original file line number Diff line number Diff line change @@ -682,7 +682,33 @@ public class LinkNumbers
682
682
683
683
684
684
685
+ ## 使用虚拟头结点解决链表翻转
686
+
687
+ > 使用虚拟头结点,通过头插法实现链表的翻转(不需要栈)
688
+
689
+ ``` java
690
+ // 迭代方法:增加虚头结点,使用头插法实现链表翻转
691
+ public static ListNode reverseList1(ListNode head) {
692
+ // 创建虚头结点
693
+ ListNode dumpyHead = new ListNode (- 1 );
694
+ dumpyHead. next = null ;
695
+ // 遍历所有节点
696
+ ListNode cur = head;
697
+ while (cur != null ){
698
+ ListNode temp = cur. next;
699
+ // 头插法
700
+ cur. next = dumpyHead. next;
701
+ dumpyHead. next = cur;
702
+ cur = temp;
703
+ }
704
+ return dumpyHead. next;
705
+ }
706
+ ```
707
+
708
+
709
+
685
710
## 使用栈解决反转链表的问题
711
+
686
712
* 首先将所有的结点入栈
687
713
* 然后创建一个虚拟虚拟头结点,让cur指向虚拟头结点。然后开始循环出栈,每出来一个元素,就把它加入到以虚拟头结点为头结点的链表当中,最后返回即可。
688
714
@@ -720,3 +746,4 @@ public ListNode reverseList(ListNode head) {
720
746
<a href =" https://programmercarl.com/other/kstar.html " target =" _blank " >
721
747
<img src =" ../pics/网站星球宣传海报.jpg " width =" 1000 " />
722
748
</a >
749
+
You can’t perform that action at this time.
0 commit comments