1.题目描述
给定一个二叉树,在树的最后一行找到最左边的值。
示例 1:
输入:
2
/ \
1 3输出:
1
示例 2:
输入:
1
/ \
2 3
/ / \
4 5 6
/
7输出:
7
注意: 您可以假设树(即给定的根节点)不为 NULL。
2.解题思路
在正常的二叉树层次遍历中,从左到右遍历,最后一个输出的节点是二叉树最右下角的节点,那么每一层从右到左遍历,则最后一个输出的节点第最左下角的节点。
3.代码实现
# 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
"""
Q = []
Q.append(root)
res = []
while Q:
t=Q.pop(0)
res.append(t)
if t.right:
Q.append(t.right)
if t.left:
Q.append(t.left)
return res[-1].val