代码的鲁棒性-合并链表
合并两个排序的链表
http://www.nowcoder.com/questionTerminal/d8b6b4358f774294a89de2a6ac4d9337
/*function ListNode(x){ this.val = x; this.next = null; }*/ function Merge(pHead1, pHead2) { // 链表1,2都不存在 if (pHead1 === null && pHead2 === null) return null; // 链表2存在,链表1不存在 else if (pHead2 !== null && pHead1 === null) return pHead2; // 链表1存在,链表2不存在 else if (pHead1 !== null && pHead2 === null) return pHead1; // 链表1,2都存在 else { let ansHead = new ListNode(-1), lastNode = ansHead; while (pHead1 && pHead2) { if (pHead1.val < pHead2.val) { lastNode.next = new ListNode(pHead1.val); pHead1 = pHead1.next; } else { // 如果二者相等或tempList1当前结点大于tempList2当前结点 lastNode.next = new ListNode(pHead2.val); pHead2 = pHead2.next; } // 第一次执行创建结果链表头结点 lastNode = lastNode.next; }; // 剩余部分处理 if (pHead1) lastNode.next = pHead1; else if (pHead2) lastNode.next = pHead2; return ansHead.next; } }