Given two binary trees, write a function to check if they are the same or not.
Two binary trees are considered the same if they are structurally identical and the nodes have the same value.
Example 1:
Input: 1 1
/ \ / \
2 3 2 3
[1,2,3], [1,2,3]
Output: true
Example 2:
Input: 1 1
/ \
2 2
[1,2], [1,null,2]
Output: false
Example 3:
Input: 1 1
/ \ / \
2 1 1 2
[1,2,1], [1,1,2]
Output: false
这道题的思路:
1.至顶向下,逐个节点对比。
2.判断两个树对应节点是否同时存在,如果结果为真->对比值是否相同.
3.如果两个节点并非同时存在,检查是否相等。
4.考虑到每个节点的检查流程一样,可以使用递归调用来减少代码行增加可读性。
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution:
def isSameTree(self, p, q):
"""
:type p: TreeNode
:type q: TreeNode
:rtype: bool
"""
if p and q:
if p.val != q.val:
return False
else:
return self.isSameTree(p.left,q.left) and self.isSameTree(p.right,q.right)
elif p != q:
return False
return True参考资料:https://leetcode.com/problems/same-tree/discuss/32729/Shortest+simplest-Python
本文介绍了一种检测两棵二叉树是否完全相同的算法。该算法通过递归方式比较两个二叉树的结构及节点值,确保它们在结构上完全一致且节点值相等。文章提供了具体的实现代码示例。
8万+

被折叠的 条评论
为什么被折叠?



