leetcode206. 反轉連結串列(java實現)
阿新 • • 發佈:2018-12-22
題目:反轉一個單鏈表。
示例:
輸入: 1->2->3->4->5->NULL
輸出: 5->4->3->2->1->NULL
思路:
- 迭代:讓當前節點的下一個節點是前節點,然後當前節點和下一個節點分別往後移。
- (遞迴)
演算法
//迭代 /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */ class Solution { public ListNode reverseList(ListNode head) { if(head==null||head.next==null)//如果連結串列為空或者只有一個值那麼返回他自己 return head; ListNode preNode=null;//前一個節點 ListNode curNode=head;//當前節點 ListNode nextNode=null;//後一個節點 while(curNode!=null){ nextNode=curNode.next;//指向下一個節點 curNode.next=preNode;//當前節點的next指向前一個節點 preNode=curNode;//前一個節點後移 curNode=nextNode;//當前節點後移 } return preNode; } }