[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
return
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;
}
}
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;
}
}
相关文章推荐
- [leetcode]47. Permutations II@Java解题报告
- 景岁的Leetcode解题报告:147.Insertion Sort List (Java)
- 【LeetCode】Binary Tree Paths 解题报告(java & python)
- 【LeetCode】Reverse Linked List 解题报告(Python & java)
- [leetcode]142. Linked List Cycle II@Java解题报告
- [leetcode]98. Validate Binary Search Tree@Java解题报告
- [leetcode]100. Same Tree@Java解题报告
- Maximum Depth of Binary Tree | leetcode 104 【Java解题报告】
- [leetcode]144. Binary Tree Preorder Traversal@Java解题报告
- [leetcode]99. Recover Binary Search Tree@Java解题报告
- [leetcode]19. Remove Nth Node From End of List@Java解题报告
- LeetCode Plus One Java版解题报告
- [leetcode]151. Reverse Words in a String@Java解题报告
- [leetcode]50. Pow(x, n)@Java解题报告
- [leetcode]133. Clone Graph@Java解题报告
- [leetcode]68. Text Justification@Java解题报告
- [leetcode]114. Flatten Binary Tree to Linked List@Java解题报告
- Add Binary | leetcode 67 【Java解题报告】
- [leetcode]125. Valid Palindrome@Java解题报告
- Climbing Stairs | leetcode 70 【Java解题报告】