二叉树-后序遍历

 前言

前序遍历:

先访问左子树,再访问右子树,最后访问根结点

代码示例

代码中用到的二叉树BinaryTree类是 树结构-二叉查找树_lujiangui的专栏-CSDN博客 这里自定义的二叉树类

用的Queue类是 线性表-队列_lujiangui的专栏-CSDN博客 里的自定义队列类

   public Queue<K> postorderTraversal(){
        Queue<K> keys = new Queue<>();
        postorderTraversal(root,keys);
        return keys;
    }

    public void postorderTraversal(Node<K,V> x,Queue<K> keys){
        if (x==null){
            return;
        }

        //先访问左子树
        if (x.left!=null){
            postorderTraversal(x.left,keys);
        }
        //最后访问右子树
        if (x.right!=null){
            postorderTraversal(x.right,keys);
        }
        //再访问根结点
        keys.add(x.key);
    }

测试:

   public static void main(String[] args) {
        BinaryTree<Integer, String> bt = new BinaryTree<>();
        bt.put(8,"aaa");
        bt.put(12,"bbb");
        bt.put(6,"ccc");
        bt.put(3,"ddd");
        bt.put(11,"ddd");
        bt.put(7,"ddd");

        Queue<Integer> keys = bt.postorderTraversal();
        for (Integer key : keys) {
            System.out.print(key+",");
        }

    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值