博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
leetcode----199. Binary Tree Right Side View
阅读量:4113 次
发布时间:2019-05-25

本文共 1785 字,大约阅读时间需要 5 分钟。

链接:

大意:

给定一棵树的根节点root,假设你站在树的最右边,要求找出你所能看到的节点(从上往下)。例子:

思路:

层次遍历,取每层的最右节点即可。

代码:

/** * Definition for a binary tree node. * public class TreeNode { *     int val; *     TreeNode left; *     TreeNode right; *     TreeNode(int x) { val = x; } * } */class Solution {    public List
rightSideView(TreeNode root) { List
res = new ArrayList<>(); if (root == null) return res; LinkedList
queue = new LinkedList<>(); queue.add(root); TreeNode ll = root, l = root; while (!queue.isEmpty()) { TreeNode node = queue.pollFirst(); if (node.left != null) { l = node.left; queue.addLast(l); } if (node.right != null) { l = node.right; queue.addLast(l); } if (node == ll) { res.add(ll.val); // 层次遍历 取每层的最右节点 ll = l; } } return res; }}

结果:

结论:

基础题,但得想想最优解。  

改进:(递归版)

/** * Definition for a binary tree node. * public class TreeNode { *     int val; *     TreeNode left; *     TreeNode right; *     TreeNode(int x) { val = x; } * } */class Solution {    int deepestLayer = -1; // 已经走到的最深层    public List
rightSideView(TreeNode root) { List
res = new ArrayList<>(); myOrder(root, res, 0); return res; } public void myOrder(TreeNode root, List
res, int currLayer) { if (root == null) return ; if (currLayer > deepestLayer) { deepestLayer = currLayer; // 每当走到一个比deepestLayer还深的层时 更新deepestLayer res.add(root.val); } myOrder(root.right, res, currLayer + 1); myOrder(root.left, res, currLayer + 1); }}

 

转载地址:http://uaesi.baihongyu.com/

你可能感兴趣的文章
接口测试之python+ unittest + HTMLTestRunner + requests
查看>>
Jmeter Mysql数据库驱动配置
查看>>
yaml做接口测试之初探
查看>>
flask开发之创建数据模型和表
查看>>
python自动生成接口测试用例
查看>>
Jmeter模拟上传图片
查看>>
charles/Fiddler设置代理安装证书之后iPhone仍然无法抓包问题解决
查看>>
测试面试
查看>>
Jenkins常见环境变量问题
查看>>
软件质量评估模型与应用系列-Rayleigh模型
查看>>
atomic, nonatomic在多线程下的表现
查看>>
Xcode不用数据线也可以真机调试
查看>>
AVAudioPlayer播放人iPod列表中选取的歌曲
查看>>
使用GameKit实现IOS设备之间的蓝牙通信
查看>>
iOS 端第三方联合登陆分析, 非SDK版本
查看>>
关于copy, mutableCopy, 浅拷贝,深拷贝
查看>>
怎样实现iMessage群发
查看>>
AppleScript脚本
查看>>
iOS7滑动返回
查看>>
Choose a destination with a supported architecture in order to run on this device.
查看>>