leetcode 145 二叉树的后序遍历
程序员文章站
2022-05-20 13:46:31
...
思路:二叉树的前序遍历 + 逆排列
在二叉树的前序排列中国, 节点顺序 root ——left——right(由于先进先出的栈,实际进栈,先是right,后是left.)
后序遍历,left——right——root(相当于root ——right——left的逆序),所以在原有的基础上稍加改变,并最后进行List的逆
class Solution {
private ArrayList<Integer> ans = new ArrayList<>();
private Stack<TreeNode> st = new Stack<>();
public List<Integer> postorderTraversal(TreeNode root) {
if(root == null) return ans;
st.push(root);
while(!st.isEmpty())
{
TreeNode node = st.pop();
ans.add(node.val);
if(node.left != null) st.push(node.left);
if(node.right != null) st.push(node.right);
}
Collections.reverse(ans);
return ans;
}
}