513. Find Bottom Left Tree Value (Medium)

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.

思路:
BFS、队列
队列中的最后一个节点即为二叉树中最后一行最左边的节点;

(利用Python的Queue)

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

import Queue
class Solution():
    def findBottomLeftValue(self, root):
        """
        :type root: TreeNode
        :rtype: int
        """
#        queue = [root]
#        for node in queue:
#            queue += filter(None, (node.right, node.left))
#        return node.val
    
        q = Queue.Queue()
        q.put(root)
        node = None
        while not q.empty():
            node = q.get()
            if node.right:
                q.put(node.right)
            if node.left:
                q.put(node.left)
        return node.val
posted @ 2017-09-15 16:28  Yancea  阅读(103)  评论(0编辑  收藏  举报