Time: 22:39
- Made one mistake with the logic is all
Todo
Make the code cleaner like you would in the neetcode solution
Neetcode Cleaner 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 not p and not q:
return True
if p and q and p.val == q.val:
return self.isSameTree(p.left, q.left) and self.isSameTree(p.right, q.right)
else:
return FalseMy Solution
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
class Solution:
def r(self, na, nb):
if na.val != nb.val:
return False
if na.left:
if nb.left:
isLeftEqual = self.r(na.left, nb.left)
if not isLeftEqual:
return False
else:
return False
elif nb.left:
return False
if na.right:
if nb.right:
isRightEqual = self.r(na.right, nb.right)
if not isRightEqual:
return False
else:
return False
elif nb.right:
return False
return True
def isSameTree(self, p: Optional[TreeNode], q: Optional[TreeNode]) -> bool:
if not p:
if not q:
return True
return False
elif not q:
return False
return self.r(p, q)
References
https://leetcode.com/problems/same-tree/submissions/882511397/