千家信息网

python二叉树问题的示例分析

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章给大家介绍python二叉树问题的示例分析,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。题目链接LeetCode 199. 二叉树的右视图[1]题目描述给定一棵二叉树,想
千家信息网最后更新 2026年11月02日python二叉树问题的示例分析

这篇文章给大家介绍python二叉树问题的示例分析,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

题目链接

LeetCode 199. 二叉树的右视图[1]

题目描述

给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。

示例1


输入:[1,2,3,null,5,null,4]输出:[1,3,4]解释:   1            <--- /   \2     3         <--- \     \  5     4       <---

题解

dfs

dfs 的思路就是直接递归求解左右子树各自能看到的右视图是什么,然后判断两个视图长度。

如果右子树右视图长度大于等于左子树右视图长度,那左子树完全被挡住。不用管左子树了,直接返回根结点加上右子树右视图就行了。

否则的话,左子树中超出右子树深度的部分不会被挡住,也会被看到,所以得拼接在右子树右视图后面。

bfs

bfs 的思路就是层次遍历了。对二叉树的每一层,只取最后一个结点就行了。

bfs 的话就得用一个队列来维护结点值了,那么怎么知道哪些结点是同一层的呢?最初的想法是用一个 pair 再保存一个深度值,但是这样有点多余了。

我们只需要每次队列中只保存同一层的结点,然后记录下队列大小。然后依次出队,直到出队个数达到之前记录的大小。并且同时将所有的下一层结点入队。这样就能保证这一层的结点全部出队之后,队列中只剩下了下一层的结点。

代码

dfs(c++)

class Solution {public:    vector rightSideView(TreeNode* root) {        if (!root) return {};        vector left = rightSideView(root->left);        vector right = rightSideView(root->right);        vector res = {root->val};        for (auto x : right) res.push_back(x);        for (int i = right.size(), sz = left.size(); i < sz; ++i) {            res.push_back(left[i]);        }        return res;    }};

bfs(c++)

class Solution {public:    vector rightSideView(TreeNode* root) {        vector res;        queue Q;        if (root) Q.push(root);        while (!Q.empty()) {            int sz = Q.size();            while (sz--) {                TreeNode* node = Q.front();                Q.pop();                if (!sz) res.push_back(node->val);                if (node->left) Q.push(node->left);                if (node->right) Q.push(node->right);            }        }        return res;    }};

关于python二叉树问题的示例分析就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

子树 结点 视图 队列 示例 长度 问题 分析 内容 右侧 大小 就是 思路 更多 深度 题目 c++ 帮助 不错 不用 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 百单网互联网科技有限公司 北京互联网科技有限公司 互联网的科技创新 互联网科技股票 华中科技大学互联网 广州紫鲸互联网科技 金融科技和互联网金融 哈尔滨秒房互联网科技有限公司 深圳互联网科技怎么样 深圳国际航运科技和互联网 宁夏众和广鑫互联网科技有限公司 互联网金融中的现代科技 苏州五指互联网络科技有限 杭州壁岐互联网科技有限公司 2021互联网科技公司排名 广州百诚互联网科技有限公司官网 半导体行业属于互联网高科技类吗 南京一网一红互联网科技有限公司 广州梦谷互联网科技有限公司领导 互联网科技收购价值 百单网互联网科技有限公司 互联网科技公司税收优惠 科技互联网技术 宜安科技 互联网金融 互联网科技公司的市场部门 互联网大会黑科技排名 新兴科技互联网创新大赛颁奖典礼 区块链结合互联网科技 互联网安防科技感 万物互联网智能科技
0