class Solution:
def findBottomLeftValue(self, root: Optional[TreeNode]) -> int:
q = deque([root])
while q:
node = q.popleft()
if node.right:
q.append(node.right)
if node.left:
q.append(node.left)
ans = node.val
return ans
def hashPathSum(root, sum:int):
if not root:
return False
if not root.left and not root.right:
return sum == root.val
return hashPathSum(root.left, sum - root.val) or hashPathSum(root.right, sum - root.val)
def buildTree(inorder, postorder):
def createTree(inorder, postorder, n):
if n == 0:
return None
k = 0
while postorder[n - 1] != inorder[k]:
k += 1
node = TreeNode(inorder[k])
node.right = createTree(inorder[k+1]:n), postorder[k:n-1], n - k - 1)
node.left = createTree(inorder[0:k], postorder[0:k], k)
return node
return createTree(inorder, postorder, len(postorder))
def buildTree(preorder, inorder):
def create(preorder, inorder,n):
if n == 0:
return None
k = 0
while preorder[0] != inorder[k]:
k += 1
node = TreeNode(inorder[k])
node.left = create(preorder[1:k+1], inorder[0:k],k)
node.right = create(preorder[k+1:], inorder[k+1:], n - k - 1)
return node
return create(preorder, inorder, len(inorder))

- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75