美文网首页
相同二叉树 2020-05-07 wxx

相同二叉树 2020-05-07 wxx

作者: 9_SooHyun | 来源:发表于2020-05-07 21:33 被阅读0次

leetcode100
相同的二叉树
给定两个二叉树,编写一个函数来检验它们是否相同。
如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。

class Solution:

    # 利用层次遍历做,相对直观
    def isSameTree1(self, p: TreeNode, q: TreeNode) -> bool:
        
        p_list = list()
        q_list = list()
        p_list.append(p)
        q_list.append(q)
        not_same_flag = 0
        while len(p_list) == len(q_list) and len(p_list) != 0:
            for i in range(len(p_list)):
                Pop1 = p_list.pop(0)
                Pop2 = q_list.pop(0)
                # 取pop的值判断
                if Pop1 is not None and Pop2 is not None:
                    if Pop1.val == Pop2.val:
                        p_list.append(Pop1.left)
                        p_list.append(Pop1.right)
                        q_list.append(Pop2.left)
                        q_list.append(Pop2.right)
                    else:
                        not_same_flag = 1
                        break
                elif Pop1 is None and Pop2 is None:
                    pass
                else:
                    not_same_flag = 1
                    break
            if not_same_flag == 1:
                break
        return not_same_flag == 0

    # 递归写法(必须理解掌握)
    # 【树相同 = 根相同+ 左子树相同 + 右子树相同】
    def isSameTree(self, p: TreeNode, q: TreeNode) -> bool:
        # 递归出口: p q 为None
        if p is None and q is None:
            return True
        
        # 只要p q有一个不为None,就做如下判断
        # p, q的val是否一致 + 左子树是否一致 + 右子树是否一致
        return (p and q and p.val == q.val and self.isSameTree(p.left, q.left) and self.isSameTree(p.right, q.right)) is True

相关文章

  • 相同二叉树 2020-05-07 wxx

    leetcode100相同的二叉树给定两个二叉树,编写一个函数来检验它们是否相同。如果两个树在结构上相同,并且节点...

  • 100. Same Tree

    题目 给定两个二叉树,p, q,编写函数判断两个二叉树是否相同。相同的二叉树树形相同且每个节点值也相同。 解析 将...

  • 二叉树的相似、镜像问题

    二叉树的镜像: 100.Same Tree(二叉树是否相同) 101.Symmetric Tree(二叉树是否对称)

  • 2020-05-08

    2020-05-07 2020-05-07 成长日志第322天 家名:温暖有爱之家 家规:真诚待人不自欺,学会看见...

  • LeetCode - 0100 - Same Tree

    题目概述 判断两个二叉树是否相同。 原题链接 Same Tree 解题思路 递归的思想:两个二叉树相同就是根节点相...

  • LeetCode 100.相同的树 python/scala

    Same Tree 环境:python 3.6,scala 2.11.8 题意 判断两颗二叉树是否相同(结构相同 ...

  • LeetCode 965. 单值二叉树

    965. 单值二叉树 如果二叉树每个节点都具有相同的值,那么该二叉树就是单值二叉树。 只有给定的树是单值二叉树时,...

  • 2019-03-07 Day 60

    1.#### 单值二叉树如果二叉树每个节点都具有相同的值,那么该二叉树就是单值二叉树。 只有给定的树是单值二叉树时...

  • LeetCode刷题之路 单值二叉树

    单值二叉树【简单】 如果二叉树每个节点都具有相同的值,那么该二叉树就是单值二叉树。 只有给定的树是单值二叉树时,才...

  • 每日Leetcode—算法(10)

    100.相同的树 算法: 101.对称二叉树 算法: 104.二叉树的最大深度 算法: 107.二叉树的层次遍历 ...

网友评论

      本文标题:相同二叉树 2020-05-07 wxx

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