题目:
解题思路:
代码:
import java.util.*;
public class LC6 {
public List<Integer> postorderTraversal(TreeNode root) {
List<Integer> ans = new ArrayList<>();
Stack<TreeNode> s = new Stack<>();
Set<TreeNode> seen = new HashSet<>();
while (root != null || !s.isEmpty()) {
if (root == null && seen.contains(s.peek())) {
ans.add(s.pop().val);
} else if (root == null) {
seen.add(s.peek());
root = s.peek().right;
} else {
s.push(root);
root = root.left;
}
}
return ans;
}
}