• 145. 二叉树的后序遍历


     思路:

    先序遍历:根-左,右

    中序遍历:左,根,右

    后序遍历:左-右-根

    可以发现,只是访问根节点顺序不同而已‘

    后序遍历,左右根,也就是根右左然后逆序!!!(先序遍历是根左右,则后续遍历时候入栈时先入左边再右边)最后的结果逆序输出一下就行!

    /**
     * Definition for a binary tree node.
     * public class TreeNode {
     *     int val;
     *     TreeNode left;
     *     TreeNode right;
     *     TreeNode(int x) { val = x; }
     * }
     */
    class Solution {//后序遍历,左右根,也就是根右左然后逆序!!!(先序遍历是跟左右,则后续遍历时候入栈时先入左边再右边)最后的结果逆序输出一下就行!
        public List<Integer> postorderTraversal(TreeNode root) {
    List<Integer>res=new ArrayList<Integer>();
            if(root==null)return res;
            Stack<TreeNode> stack=new Stack<TreeNode>();
            stack.push(root);
            while(!stack.isEmpty())
            {
                TreeNode n=stack.pop();
                res.add(n.val);
                if(n.left!=null)
                {
                    stack.push(n.left);
                }
                if(n.right!=null)
                {
                    stack.push(n.right);
                }
    
            }
            Collections.reverse(res);
            return res;
        }
    }
    

      

  • 相关阅读:
    Python并发编程—自定义线程类
    Python并发编程—线程对象属性
    syfomny 好教材....
    drupal_get_css -- drupal
    common.inc drupal
    date iso 8610
    js很好的教材
    user_load_by_name
    eck add form
    把一个表导入到另一个地方...
  • 原文地址:https://www.cnblogs.com/lzh1043060917/p/12826670.html
Copyright © 2020-2023  润新知