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.
算法分析:考察树的层序遍历,只不过这个是从右往左遍历,遍历到最后一个节点的时候,那个节点的值就是满足条件的值。C语言不会分配内存,只有Python版,其中需要用到内建filter()函数。
# 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
"""
queue = [root]
for node in queue:
queue += filter(None, (node.right, node.left))
return node.val