PU Find Bottom Left Tree Value

Jan 01, 1970

Given a binary tree, find the leftmost value in the last row of the tree.

Example 1:

Input:

    2
   / 
  1   3

Output:
1

Example 2:

Input:

        1
       / 
      2   3
     /   / 
    4   5   6
       /
      7

Output:
7

Note: You may assume the tree (i.e., the given root node) is not NULL.

Python Solution:

# Definition for a binary tree node.
# class TreeNode(object):
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None

class Solution(object):
    def findBottomLeftValue(self, root):
        """
        :type root: TreeNode
        :rtype: int
        """
        stack = []
        def preorder(root, level):
            if level == len(stack):
                stack.append(root.val)
            if root.left: preorder(root.left, level + 1)
            if root.right: preorder(root.right, level + 1)
        preorder(root, 0)
        return stack[-1]

Summary:

  • level == len(stack) is funny.

LeetCode: 513. Find Bottom Left Tree Value