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
posted @   Frommoon  阅读(6)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示