**题目:**将两个已排序的链表合并在一起。
举例1:
输入:list1 = [1,2,4], list2 = [1,3,4];
输出:[1,1,2,3,4,4];
举例2:
输入:list1 = [] , list2 = [];
输出:[]
举例3:
输入: list1 = [] , list2 = [0];
输出: [0]
**解题思路:**遍历两个链表,比较节点值来合并链表,当其中一个链表遍历完成时,将另一个链表剩余部分拼入新链表。
java/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int val) { this.val = val; } * ListNode(int val, ListNode next) { this.val = val; this.next = next; } * } */ class Solution { public ListNode mergeTwoLists(ListNode list1, ListNode list2) { ListNode head = new ListNode(0); ListNode currect = head; //比较节点,获取较小节点拼入 while (list1 != null && list2 != null) { if (list1.val <= list2.val) { currect.next = list1; list1 = list1.next; } else { currect.next = list2; list2 = list2.next; } currect = currect.next; } //若其中一个链表已遍历完成,拼入另一个链表到新链表中 if (list1 == null) { currect.next = list2; } else { currect.next = list1; } return head.next; } }