Find Bottom Left Tree Value

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.

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
        """
        res = [root.val, 0]
        self.dfs(root, 0, res)
        return res[0]

    def dfs(self, root, level, res):
        if root is None:
            return
        if root.left is None and root.right is None and (level == 0 or level > res[1]):
            res[0], res[1] = root.val, level

        self.dfs(root.left, level + 1, res)
        self.dfs(root.right, level + 1, res)

results matching ""

    No results matching ""