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分配內存空間
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. 單鏈表複製的實際應用
力扣第二題:兩數相加:題目地址
我的解答:題解