leetcode_100. 相同的树
【摘要】 目录
一、题目内容
二、解题思路
三、代码
一、题目内容
给定两个二叉树,编写一个函数来检验它们是否相同。
如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。
示例 1:
输入: 1 1 ...
目录
一、题目内容
给定两个二叉树,编写一个函数来检验它们是否相同。
如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。
示例 1:
输入: 1 1
/ \ / \
2 3 2 3[1,2,3], [1,2,3]
输出: true
示例 2:
输入: 1 1
/ \
2 2[1,2], [1,null,2]
输出: false
示例 3:
输入: 1 1
/ \ / \
2 1 1 2[1,2,1], [1,1,2]
输出: false
二、解题思路
同时比较两棵树的相同位置节点即可。
三、代码
# Definition for a binary tree node.
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
class Solution:
def isSameTree(self, p: TreeNode, q: TreeNode) -> bool:
def dfs(p, q):
if p is not None and q is not None:
if p.val == q.val:
if dfs(p.left, q.left) is False:
return False
if dfs(p.right, q.right) is False:
return False
return True
else:
return False
elif p is None and q is not None:
return False
elif p is not None and q is None:
return False
else:
return True
return dfs(p, q)
if __name__ == '__main__':
p = TreeNode(3)
p.left = TreeNode(2)
p.right = TreeNode(9)
p.right.left = TreeNode(5)
p.right.right = TreeNode(6)
q = TreeNode(3)
q.left = TreeNode(2)
q.right = TreeNode(9)
q.right.left = TreeNode(5)
q.right.right = TreeNode(6)
s = Solution()
ans = s.isSameTree(p, q)
print(ans)
文章来源: nickhuang1996.blog.csdn.net,作者:悲恋花丶无心之人,版权归原作者所有,如需转载,请联系作者。
原文链接:nickhuang1996.blog.csdn.net/article/details/108704548
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
作者其他文章
评论(0)