繁体   English   中英

在单链列表中给定位置之后插入节点

[英]Inserting a Node after a given position in a singly linked list

我的代码在Eclipse中工作正常,但在编程站点的编译器中工作不正常。 此代码是关于在给定位置添加节点。

Node InsertNth(Node head, int data, int position) {
    Node n = new Node();

    Node last = head;
    int count = 0;

    if (position == 0) {
        n.data = data;
        n.next = head;
        head=n;
        return n;
    }

    while (count < position) {
        count++;
        last = last.next;
    }
    n.data = data;
    n.next = last.next;
    last.next = n;
    return head;
}

您在循环中走得太远,也不要检查位置是否在范围内:

Node InsertNth(Node head, int data, int position) {
    Node n = new Node();
    n.data = data;

    if (position == 0) {
        n.next = head;
        return n;
    }

    Node last = head;
    for (int count = 0; count < position-1; count++) {
        if (last == null) {
            return null;
        }
        last = last.next;
    }

    n.next = last.next;
    last.next = n;
    return head;
}

同样,for循环更适合,并且其他一些事情可能会更好地重新安排。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM