字节跳动面试算法题——二叉树的右视图
2021/9/24 17:12:38
本文主要是介绍字节跳动面试算法题——二叉树的右视图,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
题目
给定一个二叉树,按照自上向下的顺序,返回从右侧所能看到的所有节点值。
如下图,返回结果是:1,3,7
分析
- 可使用BFS/DFS遍历二叉树
- 返回右视图的节点值
#题解
BFS遍历二叉树,返回每层最右节点值
public List<Integer> rightSideView(TreeNode root) { List<Integer> res = new ArrayList<>(); if (root == null) return res; // 使用队列实现层序遍历 Queue<TreeNode> queue = new LinkedList<>(); queue.offer(root); while (!queue.isEmpty()) { // 保存每层最右节点 TreeNode rightNode = null; // 每个for循环遍历一层节点 int size = queue.size(); for (int i = 0; i < size; i++) { TreeNode node = queue.poll(); rightNode = node; if (node.left != null) queue.offer(node.left); if (node.right != null) queue.offer(node.right); } // 将每层最右节点数值保存到结果中 res.add(rightNode.val); } return res; }
总结
本题的解题思路是遍历树,找到对应规则下的节点并返回。按照此思路同样可以解决“二叉树的左视图”、“多叉树的左/右视图”等,感兴趣的读者可自行练习
这篇关于字节跳动面试算法题——二叉树的右视图的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-02Java微服务系统项目实战入门教程
- 2024-11-02Java微服务项目实战:新手入门指南
- 2024-11-02Java项目实战:新手入门教程
- 2024-11-02Java小程序项目实战:从入门到简单应用
- 2024-11-02Java支付系统项目实战入门教程
- 2024-11-02SpringCloud Alibaba项目实战:新手入门教程
- 2024-11-02Swagger项目实战:新手入门教程
- 2024-11-02UNI-APP项目实战:新手入门与初级教程
- 2024-11-02编译部署资料入门教程:一步步学会编译和部署
- 2024-11-02地图服务资料入门指南