题目描述:
Given a binary tree, return the postorder traversal of its nodes' values.
For example:
Given binary tree{1,#,2,3},
1 \ 2 / 3
return[3,2,1].
思路解析:
后序遍历:
- helper方法:递归先左子树,递归后右子树,插入到链表中
- 新建一个ArrayList<Integer> re =new ArrayList<Integer>();用于存放遍历顺序
代码:
/** * Definition for binary tree * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ import java.util.*; public class Solution { public ArrayList<Integer> postorderTraversal(TreeNode root) { ArrayList<Integer> re = new ArrayList<Integer>(); if(root==null) return re; helper(root,re); return re; } public void helper(TreeNode root,ArrayList<Integer> re){//注意参数有两个哦 if(root ==null) return ; helper(root.left,re); helper(root.right,re); re.add(root.val); } }