如何在链接列表中使用指针?

时间:2019-07-17 22:45:09

标签: java linked-list

代码:

    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时,它也会影响头部,对吧?

0 个答案:

没有答案