26、輸入一個鏈表,反轉鏈表后,輸出鏈表的所有元素。


 輸入一個鏈表,反轉鏈表后,輸出鏈表的所有元素。

 

思路:

 ListNode next = null;//用來保存待反序的第一個節點(head 和 next節點)

ListNode pre = null;//用來保存已經反序的第一個結點

 

next = head.next;//首先記錄當前節點的下一個節點,(保存起來)

//先用next保存head的下一個節點的信息,保證單鏈表不會因為失去head節點的原next節點而就此斷裂

head.next = pre;//讓當前節點指向前一個節點,因為要反序

//保存完next,就可以讓head從指向next變成指向pre了

 

pre = head;//讓前一個節點值,取代當前的節點值。因為要繼續向下走

//head指向pre后,就繼續依次反轉下一個節點

 

head = next;//讓下一個節點,取代當前節點

 //讓pre,head,next依次向后移動一個節點,繼續下一次的指針反轉

 1 /*
 2 public class ListNode {
 3     int val;
 4     ListNode next = null;
 5 
 6     ListNode(int val) {
 7         this.val = val;
 8     }
 9 }*/
10 public class Solution {
11     public ListNode ReverseList(ListNode head) {
12     ListNode pre = null;
13     ListNode next = null;
14     while (head != null) {
15         next = head.next;
16         head.next = pre;
17         pre = head;
18         head = next;
19     }
20     return pre;
21 }
22 }

c++代碼:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM