LC 1430 [M] Check If a String Is a Valid Sequence from Root to Leaves Path in a Binary Tree - ALawliet/algorithms GitHub Wiki

# 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 isValidSequence(self, root: TreeNode, arr: List[int]) -> bool:
        if not root:
            return len(arr) == 0
        return self.helper(root, arr, 0)
    
    def helper(self, node, sequence, i):
        if node is None:
            return False
        if i >= len(sequence) or node.val != sequence[i]: # oob or cond breaker
            return False
        if not node.left and not node.right and i == len(sequence) - 1: # cond met
            return True
        return self.helper(node.left, sequence, i + 1) or self.helper(node.right, sequence, i + 1)