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:
return self.dfs(p,q)
def dfs(self,root1,root2):
# 注意這里有四種情況要分別進行判斷,因為root1或者root2中其中有一個為空的話,
# 就一定是不同的二叉樹,同時為慷訓者同時不為空才需要進行接下來的判斷,
if not root1 and root2:
return False
elif not root2 and root1:
return False
elif not root1 and not root2:
return True
# 這是兩個節點都不為空的情況,接著判斷
else:
# 首先判斷兩個節點的值是否相同,
if root1.val == root2.val:
# 然后遞回判斷當前節點的左兒子和右兒子
return self.dfs(root1.left,root2.left) and self.dfs(root1.right,root2.right)
else:
return False
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/63459.html
標籤:Python
