合并两个链表

Easy; LinkedList;

1. Link

2. 剑指 Offer 25. 合并两个排序的链表

难度简单117收藏分享切换为英文接收动态反馈

输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的。

示例1:

3. 思路: 两个指针

  1. 用两个指针分别用于遍历两个lists

  2. 创建一个fake_head node它的next永远指向于merged list的头部。这样可以方便我们在创建merged list的head的时候,不用特意增加代码去判断头部从哪个list提取。之后用一个pointer, cur 去遍历merged list

  3. 在while loop里面不断对比两个pointer的node的value,并把value小的那个node加到cur的next,之后把pointer向前移动一位

  4. 当其中一个list被遍历完后,把另外没有遍历完的list的剩下部分加到merged list尾巴

  5. Time complexity: O(n) 因为是对linkedlist 线性遍历。 Space: O(1)

4. Coding

Last updated

Was this helpful?