题解 | #合并两个排序的链表#

合并两个排序的链表

https://www.nowcoder.com/practice/d8b6b4358f774294a89de2a6ac4d9337

/*class ListNode {
 *     val: number
 *     next: ListNode | null
 *     constructor(val?: number, next?: ListNode | null) {
 *         this.val = (val===undefined ? 0 : val)
 *         this.next = (next===undefined ? null : next)
 *     }
 * }
 */
/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 *
 * @param pHead1 ListNode类
 * @param pHead2 ListNode类
 * @return ListNode类
 */
export function Merge(pHead1: ListNode, pHead2: ListNode): ListNode {
    // write code here
    if (!pHead1) return pHead2;
    if (!pHead2) return pHead1;

    let res = {next:null}; // 返回的时候返回它的next就行了。当做指针来使用的
    let newNode = res;
    while (pHead1 !== null && pHead2 !== null) {
        if (pHead1.val < pHead2.val) {
            newNode.next = pHead1;
            pHead1 = pHead1.next;
        } else {
            newNode.next = pHead2;

            pHead2 = pHead2.next;
        }
        newNode = newNode.next;
    }

    newNode.next = pHead1 ? pHead1 : pHead2;
    return res.next; // 返回的时候注意返回next
}

全部评论

相关推荐

牛马人的牛马人生:一开始看成了网吧
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务