合并两个有序链表(java实现)
题目:
将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
示例:
输入:1->2->4, 1->3->4
输出:1->1->2->3->4->4
看到这个题,让我想起上次写的博客,合并两个有序的数组。
这个题,是链表的合并,这就比较好移动,可以用递归实现链表的拼接
所以,代码如下:
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */ class Solution { public ListNode mergeTwoLists(ListNode l1, ListNode l2) { if(l1 == null){ return l2; } if(l2 == null){ return l1; } ListNode n1 = l1; ListNode n2 = l2; ListNode head = null; if(l1.val < l2.val){ head = l1; // 头就为l1, mergeTwoLists(l1.next,l2); //进入下一个节点的判断 }else{ head = l2;//头就为l2, mergeTwoLists(l1,l2.next);//进入下一个节点的判断 } return head; } }