leecode刷题(30)-- 二叉树的后序遍历

二叉树的后序遍历

给定一个二叉树,返回它的 后序 遍历。

示例:

输入: [1,null,2,3]
1
\
2
/
3 输出: [3,2,1]

思路

跟上道题一样,我们使用递归的思想解决。

后序遍历:

先处理左子树,然后是右子树,最后是根

代码如下

Java 描述

/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
class Solution {
List<Integer> list = new ArrayList();
public List<Integer> postorderTraversal(TreeNode root) {
if (root != null) {
postorderTraversal(root.left);
postorderTraversal(root.right);
list.add(root.val);
}
return list;
}
}

python 描述

# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None class Solution:
def postorderTraversal(self, root: TreeNode) -> List[int]:
res = []
if root is not None:
res = res + self.postorderTraversal(root.left)
res = res + self.postorderTraversal(root.right)
res = res + [root.val]
return res

总结

对比如下:

最新文章

  1. MFC -- 遍历Dialog中的子元素(控件)
  2. Opencv 2.4.10 +VS2010 项目配置记录
  3. 记录Java的垃圾回收机制和几种引用
  4. HDU5002 Tree(LCT)
  5. cocos2d-x 多分辨率适配详解(转载),以前北京团队设计的游戏,也是用这套方案
  6. android开发问题汇总
  7. nginx本地的测试环境添加SSL
  8. 读书笔记_Effective_C++_条款十七:以独立语句将new产生的对象置入智能指针
  9. SQL Server中的TempDB管理——TempDB基本知识(为什么需要版本存储区)
  10. Grunt构建工具插件篇——之less工具3和watch配合自动化编译
  11. js的内置对象
  12. Centos7 安装python3
  13. Git的思想和基本工作原理2
  14. laravel 记录
  15. mysql修改root密码及修改密码过程中报错的解决方案
  16. PS调出唯美冷色情侣婚纱写真照
  17. SqlAlchemy “Too many connections”
  18. NIO之缓冲区
  19. JDBC连接自定义sqlserver数据库实例名(多个实例)
  20. 包--json 与 pickle 模块

热门文章

  1. ARTS打卡计划第五周
  2. centos调整屏幕亮度
  3. 7 vi 编辑器
  4. 前世今生:Hive、Shark、spark SQL
  5. https知识汇总
  6. SQL Server 数据库设计、命名、编码规范
  7. 集成学习之Adaboost算法原理
  8. MySQL操作符与相关函数
  9. 八十三:redis之redis的使用场景和安装
  10. 如何在Github下载jackson的jar包