leetcode

Leetcode submissions
git clone git://git.laack.co/leetcode.git
Log | Files | Refs | README

same-tree.py (743B)


      1 # Definition for a binary tree node.
      2 # class TreeNode:
      3 #     def __init__(self, val=0, left=None, right=None):
      4 #         self.val = val
      5 #         self.left = left
      6 #         self.right = right
      7 class Solution:
      8     def isSameTree(self, p: Optional[TreeNode], q: Optional[TreeNode]) -> bool:
      9         right = p
     10         left = q
     11         return dfs(left, right)
     12 
     13 
     14 def dfs(left, right):
     15 
     16     # base case
     17     none = 0
     18     if right is None:
     19         none += 1
     20     if left is None:
     21         none += 1
     22     if none == 1:
     23         return False
     24     if none == 2:
     25         return True
     26 
     27     left_id = dfs(left.left, right.left)
     28     right_id = dfs(left.right, right.right)
     29     current_id = left.val == right.val
     30 
     31     return bool(min(left_id, right_id, current_id))