题目
思路
目标是生成一个新的升序链表,先比较两个链表的头节点看谁的值更小,然后递归的比较并设置剩余节点。
可以用递归实现,终止条件就是节点为空。
代码
private static ListNode mergeTwoLinks(ListNode x, ListNode y) {
//开始PK
//x缺席
if (x == null) {
//y胜
return y;
} else if (y == null) {
return x;
}
//x 和 y PK
else if (x.val < y.val) {
//x赢了 再拿x的下一任和y PK,谁赢谁做next
x.next = mergeTwoLinks(x.next, y);
return x;
} else {
//y赢了 再拿y的下一任和x PK,谁赢谁做next
y.next = mergeTwoLinks(y.next, x);
return y;
}
}