513. 找树左下角的值
2020-07-02 本文已影响0人
周英杰Anita
给定一个二叉树,在树的最后一行找到最左边的值。
示例 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
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。