您的位置:首页 > 编程语言 > Java开发

binary-tree-postorder-traversal java code

2017-10-16 21:16 239 查看
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].

Note: Recursive solution is trivial, could you do it iteratively?

Thinking: using the depth traversal, backtracking method, the tree traversal sequence exists in the array, and return.

/**
* Definition for binary tree
* public class TreeNode {
*     int val;
*     TreeNode left;
*     TreeNode right;
*     TreeNode(int x) { val = x; }
* }
*/
import java.util.ArrayList;
public class Solution {
public ArrayList<Integer> postorderTraversal(TreeNode root) {
ArrayList<Integer> list = new ArrayList<Integer>();
if(root == null){
return list;
}
test(root,list);
return list;
}

public void test(TreeNode node,ArrayList<Integer> list){
if(node.left != null){
test(node.left,list);
}
if(node.right != null){
test(node.right,list);
}
list.add(node.val);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息