链接列表:sth.next究竟指的是什么?

时间:2018-06-01 12:37:39

标签: singly-linked-list

我最近在youtube上观看了一系列LinkedList视频,如下图所示:

enter image description here

视频网址:https://www.youtube.com/watch?v=2RwWsHePdr8&index=11&list=PL6Zs6LgrJj3tWQfE6HK4JaX3wN96yhkD3

不,我想删除号码15(位置3),所以这里是代码:

if(position ==1) {
                ListNode temp = head;
                head = head.next;
                temp.next = null;
                return temp;
                }else {
                    ListNode previous = head;
                    int count =1;
                    while(count < position -1) {
                        previous = previous.next;
                        count++;
                    }

                    ListNode current = previous.next;
                    previous.next = current.next;
                    current.next = null;
                    return current;
                }

我有一个问题让我感到困惑:在图片中:| 10 | _ | - &gt; | 8 | __ | 如果我输入:“head.next”,是否意味着8?或者它意味着10?

旁边的节点空间

因为在我透露的代码中,我无法理解:&#34;为什么最后的代码是“current.next = null; 』&#34?; 我认为「current.next」指的是11号? 如果“current.next”表示15旁边的节点,那么前面的代码“previous.next = current.next”是否应该更改为“previous.next = current.next.next”?这意味着「current.next.next」可以参考数字11

提前致谢!!

更新:head.next和head.next.next是这样的吗? enter image description here

1 个答案:

答案 0 :(得分:0)

下一个字指向下一个节点,包括地址(系统中的内存地址)和值(例如15)

如果您知道需要删除值为15的节点,则可以遍历数组并绑定此节点的指针&#34; next&#34;到节点,那15正在显示

ListNode temp = head;
while (temp.next != null){
    if (temp.next.value == 15):
        ListNode nodeWithValue15 = temp.next;
        temp.next = nodeWithValue15.next;
        // after rebinding address to your previous node, you can delete node with value 15
        nodeWithValue15 = null;
    temp = temp.next;

Here you can see what next.next does