二叉树的先序遍历—非递归

https://github.com/yuanoOo/Algorithm/tree/master/BinaryTree/%E9%81%8D%E5%8E%86%E4%BA%8C%E5%8F%89%E6%A0%91

递归先序遍历

    /**
     * 递归的方法实现先序遍历二叉树
     */
    public static void printBinaryTreeRecursive(Node node){
        if (node == null)
            return;

        System.out.println(node.value + " ");
        printBinaryTreeRecursive(node.left);
        printBinaryTreeRecursive(node.right);
    }

非递归先序遍历

image.png
/**
     * 非递归方法实现先序遍历二叉树
     */
    public static void printBinaryTree(Node node){
        //工程方面不要使用Stack,这是java中过时的api,DeQueue是一个更好的选择
        Stack<Node> stack = new Stack<>();// only for convenient

        Node current = null;
        //1.将头节点head压入stack中
        stack.push(node);
        while (!stack.isEmpty()){
            current = stack.pop();
            System.out.print(current.value + " ");

            if (current.right != null) stack.push(current.right);
            if (current.left != null) stack.push(current.left);
        }
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • @synthesize和@dynamic分别有什么作用?@property有两个对应的词,一个是 @synthes...
    笔笔请求阅读 3,552评论 0 1
  • 【Aipm引导页】 https://58976235.wodemo.net/down/20170514/44034...
    Mr_洛寒阅读 7,748评论 3 5
  • “我喜欢你,不代表我爱你”! 喜欢,是女孩脸上的一抹红晕;是男孩为女孩准备的暖水瓶;是恋人耳边的呢喃软语;是看不见...
    我是希大人阅读 936评论 1 0
  • 周六上午老公单位组织学习,我一人在家。 临近11点,电话铃响,老公打来的。 老公:我们这里还没有结束。……,你在干...
    舒芯阅读 903评论 0 0
  • 1.美颜瘦身习惯: 2.定的目标体重:55KG 抽的人像卡,感觉有些艰难 3.抽一张人像卡,自觉一下它认为你的体重...
    黄宇婷a阅读 1,293评论 0 1