给定一个二叉树,返回它的 后序 遍历。

题目:给定一个二叉树,返回它的 后序 遍历。
解法:迭代
思路:利用栈实现中右左,再翻转成左右中
代码:
/**

  • Definition for a binary tree node.
  • public class TreeNode {
  • int val;
    
  • TreeNode left;
    
  • TreeNode right;
    
  • TreeNode() {}
    
  • TreeNode(int val) { this.val = val; }
    
  • TreeNode(int val, TreeNode left, TreeNode right) {
    
  •     this.val = val;
    
  •     this.left = left;
    
  •     this.right = right;
    
  • }
    
  • }
    */
    class Solution {
    public List postorderTraversal(TreeNode root) {
    LinkedList res = new LinkedList();
    Stack stack = new Stack();
    if(root==null){
    return res;
    }
    stack.push(root);
    while(!stack.isEmpty()){
    TreeNode popNode = stack.pop();
    res.addFirst(popNode.val);
    if(popNode.left!=null){
    stack.push(popNode.left);
    }
    if(popNode.right!=null){
    stack.push(popNode.right);
    }
    }
    return res;
    }
    }
posted @ 2021-07-20 17:29  for_ward  阅读(50)  评论(0)    收藏  举报