206. 反轉連結串列
阿新 • • 發佈:2020-09-09
https://leetcode-cn.com/problems/reverse-linked-list/
反轉一個單鏈表。
示例:
輸入: 1->2->3->4->5->NULL
輸出: 5->4->3->2->1->NULL
進階:
你可以迭代或遞迴地反轉連結串列。你能否用兩種方法解決這道題?
自己的想法:頭插法,每次找到最後一個節點以及它的前驅,第一個插入頭結點之後,然後一個個插入這個節點之後。
程式碼:
class Solution { public ListNode reverseList(ListNode head) {if(head==null || (head.next==null)) { return head; } ListNode HeadReal = new ListNode(-999); ListNode Temp = new ListNode(-999); ListNode Final=new ListNode(-999); ListNode Count=new ListNode(-999); ListNode test=new ListNode(-999);long lenth=0; HeadReal.next=head; for(Count=HeadReal.next;Count!=null;Count=Count.next) { lenth=lenth+1; } for(Temp=HeadReal.next;Temp.next.next!=null;Temp=Temp.next) { // System.out.println(Temp.val);} // System.out.println(Temp.val); Final=Temp.next; Final.next=HeadReal.next; HeadReal.next=Final; Temp.next=null; head=Final; HeadReal.next=head; // System.out.println(head.val); // for(int) for(int i=0;i<lenth-2;i++) { for(Temp=HeadReal.next;Temp.next.next!=null;Temp=Temp.next) { // System.out.println(Temp.val); } // System.out.println("Temp.val"); // System.out.println(Temp.val); Final=Temp.next; Final.next=HeadReal.next.next; HeadReal.next.next=Final; Temp.next=null; HeadReal.next=Final; } // System.out.println("HeadReal.next.next"); // System.out.println(HeadReal.next.next.val); // HeadReal.next=Final; // System.out.println("Final.val"); // System.out.println(Final.val); // Temp.next=null; // HeadReal.next.next=test; // System.out.println("head.val"); // System.out.println(head.next.val); // System.out.println(head.val); // System.out.println(head.next.val); // System.out.println(HeadReal.next.val); // HeadReal.next // for(Temp=head;Temp!=null;Temp=Temp.next) // { // System.out.println(Temp.val); // } return head; } }
然後,Leetcode官方解答:
public ListNode reverseList(ListNode head) { ListNode prev = null; ListNode curr = head; while (curr != null) { ListNode nextTemp = curr.next; curr.next = prev; prev = curr; curr = nextTemp; } return prev; }
檢視題解:https://leetcode-cn.com/problems/reverse-linked-list/solution/dong-hua-yan-shi-206-fan-zhuan-lian-biao-by-user74/
這個方法之後可以用再別的翻轉的方式上。