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

[leetcode]145. Binary Tree Postorder Traversal@Java解题报告

2017-08-10 10:33 288 查看
https://leetcode.com/problems/binary-tree-postorder-traversal/description/

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?

package go.jacob.day810;

import java.util.LinkedList;
import java.util.List;
import java.util.Stack;

/**
* 145. Binary Tree Postorder Traversal
*
* @author Jacob
*
*/
public class Demo3 {
public List<Integer> postorderTraversal(TreeNode root) {
//用linkedList中addFirst方法比ArrayLisy效率更高
LinkedList<Integer> res = new LinkedList<Integer>();
Stack<TreeNode> stack1 = new Stack<TreeNode>();
TreeNode node = root;
while (!stack1.isEmpty() || node != null) {
if (node == null) {
node = stack1.pop();
node = node.left;
} else {
stack1.push(node);
res.addFirst(node.val);
node = node.right;
}
}
return res;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: