26、輸入一個鏈表,反轉鏈表後,輸出鏈表的所有元素。
阿新 • • 發佈:2017-06-23
分享 png 輸出 nod src 繼續 -1 space next
輸入一個鏈表,反轉鏈表後,輸出鏈表的所有元素。
思路:
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++代碼:
:
26、輸入一個鏈表,反轉鏈表後,輸出鏈表的所有元素。