Java教程

合并两个有序链表(java实现)

本文主要是介绍合并两个有序链表(java实现),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

 

题目:

将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 

示例:

输入:1->2->4, 1->3->4
输出:1->1->2->3->4->4
看到这个题,让我想起上次写的博客,合并两个有序的数组。
这个题,是链表的合并,这就比较好移动,可以用递归实现链表的拼接
所以,代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 /**  * 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;     } }
这篇关于合并两个有序链表(java实现)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!