• 合并两个排序的链表


    题目:合并两个排序的链表

    题目:输入两个递增排序的链表,合并这两个链表并使新链表中的结点仍然是按照递增排序的。例如输入图中链表1和链表2,则合并之后的升序链表如链表3所示。

     

    思路解析:
    首先分析合并两个链表的过程。我们的分析从合并两个链表的头节点开始。链表1的头结点的值小于链表2的头结点的值,因此链表1的头节点将是合并后链表的头结点,如下图所示:

     

    注:(a)链表1的头结点的值小于链表2的头结点的值,因此链表1的头结点是合并后链表的头结点。(b)在剩余的结点中,链表2的头结点的值小于链表1的头结点的值,因此链表2的头结点是剩余结点的头结点,把这个结点和之前已经合并好的链表的尾结点链接起来。

    题目:树的子结构

    输入两颗二叉树A和B,判断B是不是A的子结构。

    解题思路:例如图中的两颗二叉树,由于A中有一部分子树的结构和B是一样的,因此B是A的子结构

     

    首先我们试着在树A中找到值为8(树B的根节点的值)的结点。从树A的根节点开始遍历,我们发现他的根结点就是8.接着我们就去判断树A的根结点下面的子树是不是含有树B一样的结构(如图所示)。在树A中,根节点的左子结点的值是8,而树B的根结点的左子结点是9,对应的两个结点不同

     

    因此我们仍然需要遍历树A,接着查找值为8的结点。我们在树的第二层中找到了一个值为8的结点,然后进行第二步的判断,即判断这个结点下面的子树是否含有和树B一样结构的子树。于是我们遍历这个结点下面的子树,先后得到两个子节点9和2,这和树B的结构完全相同。此时我们在树A中找到了一个和树B的结构一样的子树,因此树B是树A的子结构

  • 相关阅读:
    Django时区导致的datetime时间比较报错
    Django 插件之 Xadmin实现富文本编辑器
    xadmin自定义菜单、增加功能、富文本编辑器
    virtualenv虚拟环境搭建及pipreqs自动生成第三方模块简介
    Selenium 多窗口元素定位处理
    selenium 消息框元素定位处理
    无界面运行Jmeter压测脚本
    网站死链的扫描
    Jmeter关联处理
    逻辑思维训练
  • 原文地址:https://www.cnblogs.com/zhibei/p/9209116.html
Copyright © 2020-2023  润新知