100. Same Tree
--
Check out the problem description here.
Solution
Recursively traverse the tree. Here we check if the right subtree, right sub tree and the current node in the first tree is same as that of the second tree.
class Solution:
def isSameTree(self, p: Optional[TreeNode], q: Optional[TreeNode]) -> bool:
return (self.rec(p,q))
def rec(self,p,q):
if p==None and q==None:
return True
if(p==None or q==None):
return False
if p.val == q.val:
return(self.rec(p.left,q.left) and self.isSameTree(p.right,q.right))
Time: O(N) -> N is the number of the nodes in first or second tree
Space: O(log(N)) that is the depth of tree, which is the auxiliary space for the stack calls.