剑指offer(16)合并两个排序的链表
题目描述
输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。
题目分析
重点抓住这两个链表都是单挑递增的,因此我们只需要不断地比较他们的头结点就行,明显这是个重复的过程。
可以用递归做,也可以不用递归做,不用递归做只需要用两个指针来一直指向两个链表的“头”结点就行了
代码
/* function ListNode(x){ this.val = x; this.next = null; }*/ function Merge(pHead1, pHead2) { let pMergeHead = null; // write code here if (pHead1 === null) return pHead2; if (pHead2 === null) return pHead1; if (pHead1.val < pHead2.val) { pMergeHead = pHead1; pMergeHead.next = Merge(pHead1.next, pHead2); } else { pMergeHead = pHead2; pMergeHead.next = Merge(pHead1, pHead2.next); } return pMergeHead; }
非递归版本:略。