资源经验分享LeetCode初级算法--链表02:合并两个有序链表

LeetCode初级算法--链表02:合并两个有序链表

2019-11-09 | |  101 |   0

原标题:LeetCode初级算法--链表02:合并两个有序链表

原文来自:博客园      原文链接:https://www.cnblogs.com/aimi-cn/p/11716801.html


一、引子

这是由LeetCode官方推出的的经典面试题目清单~
这个模块对应的是探索的初级算法~旨在帮助入门算法。我们第一遍刷的是leetcode推荐的题目。
查看完整的剑指Offer算法题解析请点击github链接:
github地址

二、题目

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

示例:

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

1、思路

首先我们看到的数一个有序的链表,所以我们可以先比较两个链表长度相等的部分,按照顺序进行排列,对于剩下一个链表的部分,直接插入到最终的链表中,详细过程见代码。

2、编程实现

python

# Definition for singly-linked list.
# class ListNode(object):
#     def __init__(self, x):
#         self.val = x
#         self.next = Noneclass Solution(object):
    def mergeTwoLists(self, l1, l2):
        """
        :type l1: ListNode
        :type l2: ListNode
        :rtype: ListNode
        """
        new_head = ListNode(0)
#返回的是合并后的列表 所以让一个节点等于这个空的节点
        pHead = new_head        
#进行排序      while l1 and l2:
            if l1.val > l2.val:
              new_head.next = l2
              l2 = l2.next
            else:
              new_head.next = l1
              l1 = l1.next
            new_head = new_head.next
            # 遍历剩下没遍历的列表
             if l1:
                  new_head.next = l1        
              elif l2:
                  new_head.next = l2
              return pHead.next


本文由博客一文多发平台 OpenWrite 发布!

免责声明:本文来自互联网新闻客户端自媒体,不代表本网的观点和立场。

合作及投稿邮箱:E-mail:editor@tusaishared.com

上一篇:LeetCode初级算法--链表01:反转链表

下一篇:sklearn实现逻辑回归

用户评价
全部评价

热门资源

  • Python 爬虫(二)...

    所谓爬虫就是模拟客户端发送网络请求,获取网络响...

  • TensorFlow从1到2...

    原文第四篇中,我们介绍了官方的入门案例MNIST,功...

  • TensorFlow从1到2...

    “回归”这个词,既是Regression算法的名称,也代表...

  • 机器学习中的熵、...

    熵 (entropy) 这一词最初来源于热力学。1948年,克...

  • TensorFlow2.0(10...

    前面的博客中我们说过,在加载数据和预处理数据时...