题目截图
方法一:深度优先遍历(递归)
如果两个二叉树完全相同那么他们的结构和每个节点的值都相同。
当两个二叉树都为空时,两个二叉树相同。
当一个二叉树为空,一个二叉树不为空时,两个二叉树不相同。
当二叉树某一节点相同时,再看他们的其他节点是否相同。
利用递归的方法,设置终止条件。
当p、q节点都为空时,返回True。
当p、q节点有一个为空,有一个不为空时,返回False。
当p、q节点的值不相同时,返回False。
当p、q节点有的值相同时,继续判断其左孩子和右孩子的情况。
最后取其并集,只有全真结果才是True。否则中间为直接返回False。
class Solution:
def isSameTree(self, p: Optional[TreeNode], q: Optional[TreeNode]) -> bool:
if p == None and q == None:
return True
if p == None or q &