您的位置:首页 > 其它

**Binary Tree Postorder Traversal

2016-01-05 12:14 330 查看
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]
.

牛解法:postorder就是L-R-ROOT,这里先ROOT-R-L,再把结果reverse

public class Solution {
public List<Integer> postorderTraversal(TreeNode root) {
List<Integer> results = new ArrayList<Integer>();
Deque<TreeNode> stack = new ArrayDeque<TreeNode>();
while (!stack.isEmpty() || root != null) {
if (root != null) {
stack.push(root);
results.add(root.val);
root = root.right;
} else {
root = stack.pop().left;
}
}
Collections.reverse(results);
return results;
}
}


关于deque:https://docs.oracle.com/javase/7/docs/api/java/util/Deque.html

reference:https://leetcode.com/discuss/9736/accepted-code-with-explaination-does-anyone-have-better-idea
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: