如何解析python二叉树的右视图

本篇文章为大家展示了如何解析python二叉树的右视图,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

创新互联专注为客户提供全方位的互联网综合服务,包含不限于网站设计制作、成都网站设计、达茂旗网络推广、小程序开发、达茂旗网络营销、达茂旗企业策划、达茂旗品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联为所有大学生创业者提供达茂旗建站搭建服务,24小时服务热线:18980820575,官方网址:www.cdcxhl.com

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

示例:

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

答案:

 1public List<Integer> rightSideView(TreeNode root) {
2    if (root == null)
3        return new ArrayList();
4    Queue<TreeNode> queue = new LinkedList();
5    queue.offer(root);
6    List<Integer> res = new ArrayList();
7    while (!queue.isEmpty()) {
8        int size = queue.size();
9        while (size-- > 0) {
10            TreeNode cur = queue.poll();
11            if (size == 0)
12                res.add(cur.val);
13            if (cur.left != null)
14                queue.offer(cur.left);
15            if (cur.right != null)
16                queue.offer(cur.right);
17        }
18    }
19    return res;
20}

解析:

原理很简单,我们通过bfs(广度优先搜索)遍历每一行,然后记录一下每一行的最右的那个节点即可。在看一种递归的解法

 1public List<Integer> rightSideView(TreeNode root) {
2    List<Integer> result = new ArrayList<Integer>();
3    rightView(root, result, 0);
4    return result;
5}
6
7public void rightView(TreeNode curr, List<Integer> result, int currDepth) {
8    if (curr == null) {
9        return;
10    }
11    if (currDepth == result.size()) {
12        result.add(curr.val);
13    }
14    rightView(curr.right, result, currDepth + 1);
15    rightView(curr.left, result, currDepth + 1);
16}

通过dfs(深度优先搜索)遍历每一个节点,他先遍历的是右节点,然后是左节点,当遍历的深度等于result的长度的时候,把当前节点加入到result中。

上述内容就是如何解析python二叉树的右视图,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注创新互联行业资讯频道。

网站栏目:如何解析python二叉树的右视图
网站链接:https://www.cdcxhl.com/article22/gsjgcc.html

成都网站建设公司_创新互联,为您提供外贸网站建设网站设计公司域名注册建站公司用户体验动态网站

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

成都网页设计公司