1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| class Solution { public List<Integer> postorderTraversal(TreeNode root) { List<Integer> res = new ArrayList<>(); if(root == null) { return res; } Stack<TreeNode> st = new Stack<>(); st.push(root); while(!st.isEmpty()) { TreeNode node = st.pop(); res.add(node.val); if(node.left != null) st.push(node.left); if(node.right != null) st.push(node.right); } reverse(res); return res; } private void reverse(List<Integer> list) { int i = 0, j = list.size() - 1; while(i < j) { int tmp = list.get(i); list.set(i, list.get(j)); list.set(j, tmp); i ++; j --; } } }
|