【问题标题】:Why doesn't this code create a Linked List?为什么这段代码不创建链接列表?
【发布时间】:2018-01-22 04:13:10
【问题描述】:

我试图在链接列表的末尾创建一个新节点,但不知何故它不起作用。请帮忙!

class Node{
    int info;
    Node next;
}
Node head;


void insert(int val){
    Node nn = new Node();
    nn.info = val;
    Node cur = head;
    if(cur==null){
        cur = nn;
    }
    else{
        while(cur.next!=null){
            cur = cur.next;
        }
        cur.next = nn;
    }
}

【问题讨论】:

  • 只是为了您的信息,您应该接受并赞成正确答案并赞成其他有用的答案。这需要每个人的社区。阅读此 meta.stackexchange.com/a/5235

标签: java linked-list nodes


【解决方案1】:

您没有更改 head 的初始大小写指针,head 始终为 null

if(cur==null){
   cur = nn;
}

应该是

if(head==null){
    head = nn;
}

【讨论】:

    【解决方案2】:

    cur = nn; 更改为head = nn;

    解释:你可能认为你正在改变头,但实际上你没有。由于headnull 所以,在执行cur = headcur = nn 时;不会保存nnhead 的引用,它只会保留在cur

    【讨论】:

    • 解释:你可能认为你正在改变head,但实际上你并没有。由于 head 是null 所以,在执行cur = headcur = nn; 时不会保存nnhead 的引用,它只会保留在cur
    • 你能把它标记为答案并投票吗:) 谢谢
    • 发现这个答案很有帮助。将来,@RICKYKUMAR 请将解释作为答案的一部分 - 解释为什么提议的解决方案应该有效。干得好。
    猜你喜欢
    • 2019-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-11
    • 1970-01-01
    • 1970-01-01
    • 2011-05-27
    相关资源
    最近更新 更多