資料內(nèi)容:
1. 合并兩個(gè)有序鏈表
題?描述
將兩個(gè)升序鏈表合并為?個(gè)新的升序鏈表并返回。新鏈表是通過拼接給定的兩個(gè)鏈表的所有節(jié)點(diǎn)組成的。
示例:
輸?:1->2->4, 1->3->4
輸出:1->1->2->3->4->4
前置知識
遞歸
鏈表
思路
本題可以使?遞歸來解,將兩個(gè)鏈表頭部較?的?個(gè)與剩下的元素合并,并返回排好序的鏈表
頭,當(dāng)兩條鏈表中的?條為空時(shí)終?遞歸。
關(guān)鍵點(diǎn)
掌握鏈表數(shù)據(jù)結(jié)構(gòu)
考慮邊界情況
代碼
JS Code:
/**
* Definition for singly-linked list.
* function ListNode(val) {
* this.val = val;
* this.next = null;
* }
*/
/**
* @param {ListNode} l1
* @param {ListNode} l2
* @return {ListNode}
*/
const mergeTwoLists = function (l1, l2) {
if (l1 === null) {
return l2;
}
if (l2 === null) {
return l1;
}
if (l1.val < l2.val) {
l1.next = mergeTwoLists(l1.next, l2);
return l1;
} else {
l2.next = mergeTwoLists(l1, l2.next);
return l2;
}
};