文巾解题 100. 相同的树
Posted UQI-LIUWJ
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了文巾解题 100. 相同的树相关的知识,希望对你有一定的参考价值。
1 题目描述
2 解题思路
2.1 DFS
class Solution:
def isSameTree(self, p: TreeNode, q: TreeNode) -> bool:
if(p==None and q==None):
return True
elif(p==None or q==None):
return False
def dfs(p_,q_):
if(p_==None and q_==None):
return True
elif(p_==None or q_==None):
return False
elif(p_.val !=q_.val):
return False
#判断此时的q和p 根节点是否相等
else:
return dfs(p_.left,q_.left) and dfs(p_.right,q_.right)
#递归判断p和q的左和右子树
return(dfs(p,q))
2.2 BFS
class Solution:
def isSameTree(self, p: TreeNode, q: TreeNode) -> bool:
if(p==None and q==None):
return True
elif(p==None or q==None):
return False
p_=[p]
q_=[q]
while(p_ and q_):
tmp_p=p_.pop(0)
tmp_q=q_.pop(0)
if(tmp_p==None and tmp_q==None):
continue
elif(tmp_p==None or tmp_q==None):
return False
elif(tmp_p.val!=tmp_q.val):
return False
#判断当前p和q的根节点是否相同
else:
p_.append(tmp_p.left)
q_.append(tmp_q.left)
p_.append(tmp_p.right)
q_.append(tmp_q.right)
#将p和q的左右子节点入栈
return True
以上是关于文巾解题 100. 相同的树的主要内容,如果未能解决你的问题,请参考以下文章