[LeetCode] 199. Binary Tree Right Side View
2016-04-01 11:29
260 查看
这题的意思就是人站在一棵二叉树右边
先是自己瞎想提交了好几次都不对,然后网上看了看,很多人都是用的一层一层地遍历然后存入最右边的node.val
我的方法是类似遍历前序二叉树,每一层的深度通过deep记录下来然后更新cache
class Solution(object):
def rightSideView(self, root):
"""
:type root: TreeNode
:rtype: List[int]
"""
if not root:
return []
self.cache = []
self.deep = 1
self.Read(root)
return self.cache
def Read(self,node):
if self.deep > len(self.cache):
self.cache.append(node.val)
else :
self.cache[self.deep - 1] = node.val
if node.left is not None:
self.deep += 1
self.Read(node.left)
if node.right is not None:
if node.left is None:
self.deep += 1
self.Read(node.right)
if node.left is None and node.right is None:
self.deep += 1
self.deep -= 1
速度比较慢...
1 <--- / \ 2 3 <--- \ \ 5 4 <---
先是自己瞎想提交了好几次都不对,然后网上看了看,很多人都是用的一层一层地遍历然后存入最右边的node.val
我的方法是类似遍历前序二叉树,每一层的深度通过deep记录下来然后更新cache
class Solution(object):
def rightSideView(self, root):
"""
:type root: TreeNode
:rtype: List[int]
"""
if not root:
return []
self.cache = []
self.deep = 1
self.Read(root)
return self.cache
def Read(self,node):
if self.deep > len(self.cache):
self.cache.append(node.val)
else :
self.cache[self.deep - 1] = node.val
if node.left is not None:
self.deep += 1
self.Read(node.left)
if node.right is not None:
if node.left is None:
self.deep += 1
self.Read(node.right)
if node.left is None and node.right is None:
self.deep += 1
self.deep -= 1
速度比较慢...
相关文章推荐
- 图解MySQL事务隔离级别
- Extjs实现下拉树
- 第1周 《C语言及程序设计》资料1——C语言中的运算符
- Hadoop搭建注意事项
- Hibernate实体注解置于成员变量与方法上的区别
- 在Oracle 11.2的数据库中建表时遇到 RESULT_CACHE (MODE DEFAULT) ORA-00922: missing or invalid option
- android N刷机
- 关于fifo创建和打开
- saltstack pkg模块用法
- php的mongodb扩展插件安装
- 访问网络------开源-Retrofit
- codeblocks c++ 编译出错
- Hibernate 配置
- 创建数据库表索引
- Android中 MVP模式的使用
- codeblocks c++ 编译出错
- wifi详解(一)
- pry与ruby版本冲突
- oracle监听配置
- 博客迁移通知