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/
这个方法之后可以用再别的翻转的方式上。