首页 > 其他 > 详细

leetcode 21.合并两个有序链表(迭代)

时间:2020-05-01 12:17:59      阅读:49      评论:0      收藏:0      [点我收藏+]

1.题目链接

https://leetcode-cn.com/problems/merge-two-sorted-lists/

2.题目描述

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

示例:

输入:1->2->4, 1->3->4
输出:1->1->2->3->4->4

3.题目解析

  用迭代方法求解,当l1或者l2为空时,则返回另一个链表;否则, l1 l2 都不是空链表,判断 l1 l2 哪一个链表的头节点的值更小,将较小值的节点添加到结果里,对应链表中的节点向后移一位。

4.代码实现

 

 1 /**
 2  * Definition for singly-linked list.
 3  * struct ListNode {
 4  *     int val;
 5  *     struct ListNode *next;
 6  * };
 7  */
 8 struct ListNode* mergeTwoLists(struct ListNode* l1, struct ListNode* l2){
 9     if (l1 == NULL) {
10         return l2;
11 }
12     if (l2 == NULL) {
13         return l1;
14 }
15     if (l1->val < l2->val) {
16         l1->next = mergeTwoLists(l1->next, l2);
17         return l1;
18     }
19     else {
20         l2->next = mergeTwoLists(l1, l2->next);
21         return l2;
22     }
23 }

 

5.提交记录

技术分享图片

 

leetcode 21.合并两个有序链表(迭代)

原文:https://www.cnblogs.com/zygote/p/12812806.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!