本文主要是介绍Merge Two Sorted Lists(和并两个从小到大排好序的链表),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
描述:
Merge two sorted linked lists and return it as a new list. The new list should be made by splicing together the nodes of the first two lists.
分析:
- 如果第一个链表为空,则返回第二个链表
- 如果第二个链表为空,就返回第一个链表(都为空会返回空链表)
- 如果第一个链表头结点值小于第二个链表头结点值,则第一个链表头结点当做新链表头结点,后续节点为合并l1.next和l2之后的链表
- 如果第二个链表头结点值小于第一个链表头结点值,则第二个链表头结点当做新链表头结点,后续节点为合并l2.next和l1之后的链表
代码:
public ListNode mergeTwoLists(ListNode l1, ListNode l2) {if(l1 == null) return l2;//链表l1为空,返回l2if(l2 == null) return l1;//链表l2为空,返回l1if(l1.val < l2.val) {//l1头结点比l2小就把l1的头结点当做新链表头结点l1.next = mergeTwoLists(l1.next, l2);//后面节点就是合并l1.next和l2之后的节点return l1;}else {//l2头结点比l1小就把l2的头结点当做新链表头结点l2.next = mergeTwoLists(l1, l2.next);//后面节点就是合并l2.next和l1之后的节点return l2;}}
这篇关于Merge Two Sorted Lists(和并两个从小到大排好序的链表)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!