将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
-
使用迭代法,比较两个升序子序列中当前节点值大小,并添加到前一个节点之后。遍历最后,将剩余子序列添加到新升序链表最后即可。
完整实现如下图所示:
完整实现 -
在程序开始,我们定义两个指针分别指向两个链表开始。定义新生成链表的头结点,以及新生成链表的最后一个元素指针,定义为p。
后续比较链表中节点,添加到p之后,并重新设置p。
定义新链表指针 -
循环比较升序链表中节点值,并将其中较小值添加到p节点之后。在添加之前需要判断新生成链表是否初始化。
循环遍历链表 -
添加到新链表之后,修改新链表末尾指针p值,并同时更新对应原升序链表下一节点指针。
添加合并到新链表 -
循环结束后,还需要将剩余节点添加到新生成链表最后。
在这里我们还要单独处理新链表未初始化的情况,当原始升序链表中有空链表时,上面循环就不会执行。
处理剩余链表元素
注意事项
注意处理链表为空的情况
需要添加剩余链表到新链表最后