代码:
Node ptr_old_list = head; // A->B->C
Node ptr_new_list = head.next; // A'->B'->C'
Node head_old = head.next;
while (ptr_old_list != null) {
ptr_old_list.next = ptr_old_list.next.next;
ptr_new_list.next = (ptr_new_list.next != null) ? ptr_new_list.next.next : null;
ptr_old_list = ptr_old_list.next;
ptr_new_list = ptr_new_list.next;
}
return null;
问题:
如果head = 1-> 2-> 3-> 4-> 5-> 6,当我们申请时
ptr_old_list.next = ptr_old_list.next.next;
头部将变为1-> 3-> 4-> 5-> 6,但是当我们应用
ptr_new_list.next = (ptr_new_list.next != null) ? ptr_new_list.next.next : null;
头将保持不变,仍为1-> 3-> 4-> 5-> 6。
为什么会这样?
我知道当我们初始化一个链接node = head时,它将指向head的内存;从技术上讲,当我们操作ptr_new_list时,它也会影响头部,对吧?