Shu-How Zの小窝

Loading...

LeetCode:21.合并两个有序链表

LeetCode:21.合并两个有序链表

解题思路与归并排序中的合并两个有序数组很相似。将数组替换成链表就能解此题。

解题步骤新建一个新链表,作为返回结果。用指针遍历两个有序链表,并比较两个链表的当前节点,较小者先接入新链表,并将指针后移一步。链表遍历结束,返回新链表。

/**
 * Definition for singly-linked list.
 * function ListNode(val, next) {
 *     this.val = (val===undefined ? 0 : val)
 *     this.next = (next===undefined ? null : next)
 * }
 */
/**
 * @param {ListNode} list1
 * @param {ListNode} list2
 * @return {ListNode}
 */
var mergeTwoLists = function(list1, list2) {
    let root=new ListNode(0)
    let res=root
    let p1=list1;
    let p2=list2;
    while(p1&&p2){
        if(p1.val<p2.val){
            res.next=p1
            p1=p1.next
        }
        else{
            res.next=p2
            p2=p2.next
        }
        res=res.next
    }
    if(p1)res.next=p1;
    if(p2)res.next=p2;
    return root.next
};

'

posted @ 2025-01-15 18:29  KooTeam  阅读(22)  评论(0)    收藏  举报