美文网首页
513. Find Bottom Left Tree Value

513. Find Bottom Left Tree Value

作者: xiaoyaook | 来源:发表于2017-11-27 21:23 被阅读0次

两个问题,如何找到最后一层?如何找到最左端?
可以想到用BFS,一层一层向下迭代.
保持一个queue数组,循环时每次记录最左端的值,
直到queue中无元素,退出循环.

class Solution(object):
    def findBottomLeftValue(self, root):
        """
        :type root: TreeNode
        :rtype: int
        """
        queue = [root]
        ans = 0
        while any(queue):
            // ans 一直为当前层最左端的元素的值
            ans = queue[0].val
            queue = [leaf for node in queue for leaf in (node.left,node.right) if leaf]
        return ans

这里可以用高阶函数filter简化

def findLeftMostNode(self, root):
    queue = [root]
    for node in queue:
        queue += filter(None, (node.right, node.left))
    return node.val

如果filter参数值为None,就使用identity()函数,list参数中所有为假的元素都将被删除

相关文章

网友评论

      本文标题:513. Find Bottom Left Tree Value

      本文链接:https://www.haomeiwen.com/subject/ikddbxtx.html