美文网首页
513. 找树左下角的值

513. 找树左下角的值

作者: 周英杰Anita | 来源:发表于2020-07-02 18:48 被阅读0次

    给定一个二叉树,在树的最后一行找到最左边的值。

    示例 1:

    输入:
    
        2
       / \
      1   3
    
    输出:
    1
    

    示例 2:

    输入:
    
            1
           / \
          2   3
         /   / \
        4   5   6
           /
          7
    
    输出:
    7
    

    注意: 您可以假设树(即给定的根节点)不为 NULL。

    思路--BFS(广度优先遍历)

    BFS的思路是是从上到下,从左到右追层遍历。
    根据题目意思,是要取到最下面,最左边的元素。
    只需要对BFS遍历改为从上到下保持不变, 但水平遍历方向改为从右到左即可。
    这样,先上后下,先右后左,此策略走下去,最后一个元素必然是最下方最左边的元素,最后返回该节点node.val即可
    

    python3解法

    # Definition for a binary tree node.
    # class TreeNode:
    #     def __init__(self, x):
    #         self.val = x
    #         self.left = None
    #         self.right = None
    
    class Solution:
        def findBottomLeftValue(self, root: TreeNode) -> int:
            queue = [root]
            # 从上到下,从右向左遍历
            while queue:
                # 最后一个节点就是最左边的节点
                curNode = queue.pop(0)
                if curNode.right:
                    queue.append(curNode.right)
                if curNode.left:
                    queue.append(curNode.left)
            return curNode.val
    

    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/find-bottom-left-tree-value
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

    相关文章

      网友评论

          本文标题:513. 找树左下角的值

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