题目描述: 给定两个二叉树,编写一个函数来检验它们是否相同。如果两棵树结构相同,并且同位置节点具有相同的值,则认为它们相同。
来源:力扣(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