给定一个二叉树,在树的最后一行找到最左边的值。
输入:
1
/ \
2 3
/ / \
4 5 6
/
7
输出:
7
层序遍历,队列中存放的都是同一层的节点,每一层第一个节点就是最左边的节点
from queue import Queue
def findBottomLeftValue(root):
q = Queue()
q.put(root)
while q.qsize():
ans = None
size = q.qsize()
for _ in range(size):
node = q.get()
if not ans:
# 记录每一层最左边的节点
ans = node
if node.left:
q.put(node.left)
if node.right:
q.put(node.right)
return ans.val