class TreeNode:
def __init__(self, val):
self.val = val
self.left = None
self.right = None
def canReachLeaf(root):
if not root or root.val == 0:
return False
if not root.left and not root.right:
return True
if canReachLeaf(root.left):
return True
if canReachLeaf(root.right):
return True
return False
def leafPath(root, path):
if not root or root.val == 0:
return False
path.append(root.val)
if not root.left and not root.right:
return True
if leafPath(root.left, path):
return True
if leafPath(root.right, path):
return True
path.pop()
return False```