反轉鏈表

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

本文考慮的是單鏈表

定義單鏈表

public class ListNode {
    int val;    //自身值
    ListNode next = null;      //指向下一個節點
    ListNode(int val) {
        this.val = val;
    }
}


實現類:

public class Solution {
    public ListNode ReverseList(ListNode head) {
         if(head == null){
                return null;
         }
         //head爲當前節點,pre爲當前節點的前一個節點,dre爲當前節點的後一個節點
         ListNode cur = head;
         ListNode pre = null;
         ListNode dre = null;
         while(cur != null){
            dre = cur.next;
            cur.next = pre;
            pre = cur;
            cur = dre;
        }
        return pre;
    }
    
    public static void main(String[] args) {
         //構建單鏈表
         ListNode node1 = new ListNode(1); //val=1,next=null
         ListNode node2 = new ListNode(2); //val=2,next=null
         ListNode node3 = new ListNode(3); //val=3,next=null
         ListNode node4 = new ListNode(4); //val=4,next=null
         ListNode node5 = new ListNode(5); //val=5,next=null
         node1.next = node2; //val=1,next=val=2,next=null
         node2.next = node3;
         node3.next = node4;
         node4.next = node5;
         node5.next = null;
         Solution s = new Solution();
         ListNode node = s.ReverseList(node1);
         while(node != null){
              System.out.print(node.val + " ");
              node = node.next;
         }
   }
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章