首页 > 其他 > 详细

145. 二叉树的后序遍历

时间:2020-05-04 16:22:43      阅读:44      评论:0      收藏:0      [点我收藏+]

技术分享图片

 

 思路:

先序遍历:根-左,右

中序遍历:左,根,右

后序遍历:左-右-根

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

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

/**
 * 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;
    }
}

  

145. 二叉树的后序遍历

原文:https://www.cnblogs.com/lzh1043060917/p/12826670.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!