美文网首页
树的结构

树的结构

作者: 九日火 | 来源:发表于2021-01-02 15:05 被阅读0次

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

思路:
检索当前树是否存在相似的值,如存在继续检查节点的分支。

package main


import "fmt"

type TreeNode struct {
    Val     int
    Left    *TreeNode
    RIght   *TreeNode
}

func FindSubTree(p, c *TreeNode) bool {
    if p == nil {return false}
    if c == nil {return true}

    if p.Val == c.Val {
        if HasSub(p, c) {
            return true
        }
    }

    return FindSubTree(p.Left, c) || FindSubTree(p.RIght, c)
}

func HasSub(p, c *TreeNode) bool {
    if c == nil {return true}
    if p == nil {return true}

    if p.Val != c.Val {
        return true
    }

    return HasSub(p.RIght, c.RIght) && HasSub(p.Left, c.Left)
}
class TreeNode:
    def __init__(self, x):
        self.val = x
        self.left = None
        self.right = None


class Solution:
    def TreeHasNode(self, pRoot1, pRoot2):
        if pRoot2 == None:
            return True
        elif pRoot1 == None:
            return False

        elif pRoot1.val == pRoot2.val:
            return HasNode(pRoot1, pRoot2)
        return TreeHasNode(pRoot1.left, pRoot2) or TreeHasNode(pRoot1.right, pRoot2)


    def HasNode(self, pRoot1, pRoot2):
        if pRoot2 == None:
            return True
        elif pRoot1 == None:
            return False
        elif pRoot1.val != pRoot2.val:
            return True
        return HasNode(pRoot1.left, pRoot2) and HasNode(pRoot2.right, pRoot2)
        ```

相关文章

  • 树的结构

    输入两颗二叉树A,B,判断B是不是A的子结构。 思路:检索当前树是否存在相似的值,如存在继续检查节点的分支。

  • 数据结构学习第四弹 树与森林

    在前面已经介绍过了二叉树的存储结构,那么对于一般的树来说,他的存储结构又该是怎么样的呢。 树的存储结构 树存储结构...

  • 数据结构 - 概要

    数组 链表 堆/栈/队列 树 数据结构 - 二叉树数据结构 - 二叉查找树数据结构 - 平衡二叉树数据结构 - A...

  • js 中二叉树的深度遍历与广度遍历(递归实现与非递归实现)

    树的简介 栈、队列、链表等数据结构,都是顺序数据结构。而树是非顺序数据结构。树型结构是一类非常重要的非线性结构。直...

  • JS中的二叉树遍历

    栈、队列、链表等数据结构,都是顺序数据结构。而树是非顺序数据结构。树型结构是一类非常重要的非线性结构。直观地,树型...

  • 【恋上数据结构与算法一】(六)二叉树

    二叉树 线性结构 树形结构 二叉树 多叉树 生活中的树形结构 ◼ 使用树形结构可以大大提高效率◼ 树形结构是算法面...

  • 看动画学算法之:二叉搜索树BST

    简介 树是类似于链表的数据结构,和链表的线性结构不同的是,树是具有层次结构的非线性的数据结构。 树是由很多个节点组...

  • 疯狂java笔记之树和二叉树

    树的概述 树是一种非常常用的数据结构,树与前面介绍的线性表,栈,队列等线性结构不同,树是一种非线性结构 1.树的定...

  • 18 树的子结构

    树的子结构 题目描述: 输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)...

  • 《剑指offer》— JavaScript(17)树的子结构

    树的子结构 题目描述 输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构) ...

网友评论

      本文标题:树的结构

      本文链接:https://www.haomeiwen.com/subject/uwgloktx.html