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 { Listlist = new ArrayList(); public List 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 = Noneclass 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
总结
对比如下: