鏈表複製操作圖

1. 單鏈表複製

public class ListNode {
    int val;
    ListNode next;

    ListNode(int x) {
        val = x;
    }


    public String sout(ListNode listNode){
        ListNode newNode =listNode;
        StringBuffer stringBuffer =new StringBuffer("");
        while (newNode!=null){
            stringBuffer.append(newNode.val+",");
            newNode=newNode.next;
        }
        return stringBuffer.toString();
    }
}

鏈表

ListNode a1 =new ListNode(1);//a=1
ListNode b =a1;//b=1
b.next =new ListNode(4);//b=1,4,a=1,4
b=b.next;//b=4
b.next =new ListNode(5);//b=4,5,a=1,4,5
b=b.next;//b=5
System.out.println(a1.sout(a1));//1,4,5
System.out.println(b.sout(b));//5

具體的操作圖如下:
第一步:給A1分配內存空間
1
2. b指向a1的內存空間
在這裏插入圖片描述
3. 在內存空間的NULL開闢一個新的節點4,節點4和節點1用指針關聯
這時a1,b的值都是1,4

在這裏插入圖片描述

4.b放棄原先的內存地址,改指向節點4所代表的新地址,此時a1的值不變還是1,4
在這裏插入圖片描述
5. 後面依舊,b變成了5,a1變成了1,4,5

2. 單鏈表複製的實際應用

力扣第二題:兩數相加:題目地址

我的解答:題解

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