1. 程式人生 > >劍指offer-15:反轉連結串列

劍指offer-15:反轉連結串列

題目描述

輸入一個連結串列,反轉連結串列後,輸出新連結串列的表頭。

程式碼

public class Solution15 {


    public ListNode ReverseList(ListNode head) {

        if(head==null)
            return null;

        ListNode pre = null;
        ListNode next;

        while(head!=null){
            //先用next儲存head的下一個節點的資訊,保證單鏈表不會因為失去head節點的原next節點而就此斷裂
next = head.next; //讓head從指向next變成指向pre head.next = pre; //更新pre pre = head; //把next當成新head,繼續迴圈 head = next; } return pre; } public static void main(String[] args) { ListNode node1=new ListNode
(3); ListNode node2=new ListNode(13); ListNode node3=new ListNode(21); ListNode node4=new ListNode(33); ListNode node5=new ListNode(23); ListNode node6=new ListNode(42); ListNode node7=new ListNode(28); ListNode node8=new ListNode(19); node1.
next=node2; node2.next=node3; node3.next=node4; node4.next=node5; node5.next=node6; node6.next=node7; node7.next=node8; ListNode node=new Solution15().ReverseList(node1); while (node!=null){ System.out.println( node.val); node=node.next; } } }