您的位置:首页 > 其它

145. Binary Tree Postorder Traversal

2017-01-07 14:07 344 查看
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]
.

将后序遍历的结果逆序,就是先序遍历时先遍历右子树,再遍历左子树的结果。因此只需在先序遍历的结果上稍微改变一下代码。

public class Solution {
public List<Integer> postorderTraversal(TreeNode root) {
List<Integer> list=new ArrayList<>();
Stack<TreeNode> stack=new Stack<>();
TreeNode p=root;
while(p!=null||!stack.isEmpty()){
while(p!=null){
list.add(0,p.val);
stack.push(p);
p=p.right;
}
if(!stack.isEmpty()){
p=stack.pop();
p=p.left;
}
}
return list;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: