513. 找树左下角的值(中)
题目
-
给定一个二叉树的 根节点 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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人