替换双链表中的节点



给定两个双链表,我不仅要改变元素,还要改变其中一个链表的节点,以便相同位置的和等于某个数字。

public void repair(int num){
    Node list1 = head1;
    Node right = head2;
    for(int i = 0; i<size; i++){
        int element = num - list1.element;
        Node p = right.previous;
        Node s = right.next;
        right = new Node(element, null, null);
        p.next = right;
        right.previous = p;
        right.next = s;
        s.previous = right;
        list1 = list1.next;
        right = right.next;
    }
}

size =两个列表的大小相同。我试过很多东西,但它总是给我nullpointerexception在p.next = right和s.previous = right;

我不明白为什么它给我这个错误。有人能给我解释一下解决这个问题的方法吗?

表示p为null

Node p = right.previous;

必须返回null

看到right被定义为head2,您将不得不查看头2并找出head2.previous为空的原因。我猜这是列表的开头还是什么。

你需要把空检查,所以你只运行操作的下一个/前一个节点,当他们不是空

相关内容

  • 没有找到相关文章

最新更新