Same Tree

Problem Id: 100 Difficulty: Easy Tag: Tree Tag: Depth-first Search


Intuition

So basically, we could do an preorder traversal with 2 trees at the same time to check whether they are equal. And this could be done recursively.

Solution


# 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: TreeNode, q: TreeNode) -> bool:
        if p is None and q is None:
            return True
        elif p is None or q is None:
            return False
        elif p.val != q.val:
            return False

        if self.isSameTree(p.left, q.left) and self.isSameTree(p.right, q.right):
            return True
        return False