LeetCode isSameTree Python3

题目描述: 给定两个二叉树,编写一个函数来检验它们是否相同。如果两棵树结构相同,并且同位置节点具有相同的值,则认为它们相同。

来源:力扣(LeetCode)https://leetcode-cn.com/problems/same-tree/
在这里插入图片描述

  • 这道题是道很简单的题,我用的是树的先序遍历,虽然我没试,但是估计中序跟后序应该也可以。但要注意的是要改变一下原本遍历函数的递归出口,改成当指到的子树不存在时,给结果添加一个 None,然后返回。这个算法的速度还是很不错的,代码如下:
# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None
def isSameTree(self, p: TreeNode, q: TreeNode) -> bool:
        def pre(tree, res):
            if tree:
                res.append(tree.val)
                pre(tree.left, res)
                pre(tree.right, res)
            else:
                res.append(None)
                return
        res1, res2 = [], []
        pre(p, res1)
        pre(q, res2)
        if res1 == res2:
            return True
        else:
            return False
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值