目录
题目
-
给定一个二叉树的 根节点 root,请找出该二叉树的 最底层 最左边 节点的值。
假设二叉树中至少有一个节点。
题解:BFS
- BFS,队列的最后一层的第一个结点
class Solution:
def findBottomLeftValue(self, root: Optional[TreeNode]) -> int:
q=[]# 存储待处理的节点
q.append(root)# 将根节点添加到队列中
while q:
size=len(q)
res=[]# 存储当前层的节点值
for _ in range (size):
cur=q.pop(0) # 从队列中取出当前节点
if cur.left:
q.append(cur.left)# 将左子节点添加到队列中
if cur.right:
q.append(cur.right) # 将右子节点添加到队列中
res.append(cur.val)# 将当前节点的值添加到当前层的节点值列表中
return res[0]# 返回最后一层的第一个节点的值
题解:BFS优化
- 从右往左队列的最后一个元素
class Solution:
def findBottomLeftValue(self, root: TreeNode) -> int:
q = [root]
while q:
cur = q.pop(0)
if cur.right: # 先右后左
q.append(cur.right)
if cur.left:
q.append(cur.left)
return cur.val
标签:cur,队列,找树,BFS,513,左下角,root,节点,append
From: https://www.cnblogs.com/lushuang55/p/17923049.html