题解 | #合并两个排序的链表#
合并两个排序的链表
https://www.nowcoder.com/practice/d8b6b4358f774294a89de2a6ac4d9337
/**
* @nc app=nowcoder id=d8b6b4358f774294a89de2a6ac4d9337 topic=295 question=23267 lang=Java
* 2024-05-31 18:07:17
* https://www.nowcoder.com/practice/d8b6b4358f774294a89de2a6ac4d9337?tpId=295&tqId=23267
* [BM4] 合并两个排序的链表
*/
/** @nc code=start */
import java.util.*;
/*
* public class ListNode {
* int val;
* ListNode next = null;
* public ListNode(int val) {
* this.val = val;
* }
* }
*/
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param pHead1 ListNode类
* @param pHead2 ListNode类
* @return ListNode类
*/
public ListNode Merge (ListNode pHead1, ListNode pHead2) {
// write code here
if(pHead1 == null) {
return pHead2;
}
if(pHead2 == null) {
return pHead1;
}
ListNode loop1,loop2 = null;
if(pHead2.val >= pHead1.val) {
loop1 = pHead1;
loop2 = pHead2;
} else {
loop1 = pHead2;
loop2 = pHead1;
}
while (true) {
System.out.println("outside loop1:" + loop1.val);
while (loop2 != null) {
// System.out.println("loop2:" + loop2.val);
// System.out.println("loop1:" + loop1.val);
// System.out.println("loop1 next:" + loop1.next);
if(loop2.val >= loop1.val && (loop1.next == null || loop2.val <= loop1.next.val)) {
ListNode swapTemp1 = loop1.next;
ListNode loop2Head = loop2;
// System.out.println("loop2Head:" + loop2Head.val);
loop2 = loop2.next;
loop1.next = loop2Head;
loop2Head.next = swapTemp1;
loop1 = loop1.next;
} else {
break;
}
}
loop1 = loop1.next;
if(loop1 == null) {
break;
}
}
if(pHead2.val >= pHead1.val) {
return pHead1;
} else {
return pHead2;
}
}
}
/** @nc code=end */

字节跳动公司福利 1359人发布
