gpt4 book ai didi

java - 合并2排序链表错误答案

转载 作者:行者123 更新时间:2023-12-01 19:31:28 25 4
gpt4 key购买 nike

所以我正在解决合并两个排序链表的 hackerrank 问题。这就是我所拥有的

    // Complete the mergeLists function below.

/*
* For your reference:
*
* SinglyLinkedListNode {
* int data;
* SinglyLinkedListNode next;
* }
*
*/
static SinglyLinkedListNode mergeLists(SinglyLinkedListNode head1, SinglyLinkedListNode head2) {

SinglyLinkedListNode curr1 = head1;
SinglyLinkedListNode curr2 = head2;
SinglyLinkedListNode head = new SinglyLinkedListNode(0);
SinglyLinkedListNode curr = head;



while(curr1.next != null && curr2.next != null){

if(curr1.data < curr2.data ){

curr.next = curr1;
curr = curr.next;
curr1 = curr1.next;


}

else{

curr.next = curr2;
curr=curr.next;
curr2 = curr2.next;
}

}

if (curr1.next == null ){
curr.next = curr2;
}


head = head.next;
return head;


}

private static final Scanner scanner = new Scanner(System.in);

但是这是我得到的输出

1 2 3 4与

相反

1 2 3 3 4

测试用例是

链表 1 : 1,2,3链表2:3,4

最佳答案

当两个元素彼此相等时,您缺少 if 子句。

        else if (curr1.data > curr2.data) {
curr.next = curr2;
curr = curr.next;
curr2 = curr2.next;
} else {
// assign node from 2nd list
curr.next = curr2;

// increment 2nd list
curr2 = curr2.next;
curr = curr.next;

// asign node from 1st list
curr.next = curr1;

// increment 1st list
curr1 = curr1.next;
curr = curr.next;
}

关于java - 合并2排序链表错误答案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59257051/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com