将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
该题目来自力扣题库
示例
输入:1->2->4, 1->3->4
输出:1->1->2->3->4->4
思路
设立一个新链表,选择带有头节点是傀儡节点的新链表代码书写起来较为简便。
设一个新链表的尾节点,这个尾节点就用于在新链表尾部插入节点所用。
循环遍历 l1 链表和 l2 链表,判断大小后对应添加到新链表的尾部,循环结束的条件是 遍历 l1链表或者 l2 链表到了末尾,那么就退出循环。
判断哪个链表还没有遍历完成,没有遍历完成的就把剩下的节点一齐加入到新链表末尾。
代码
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
class Solution {
public ListNode mergeTwoLists