zoukankan      html  css  js  c++  java
  • 二叉树先序遍历

    先序遍历:根节点,左节点,右节点。

    一、递归先序遍历

    递归方式比较直接明了。

        public static void preOrder(TreeNode root) {
            if (root == null) {
                return;
            }
            System.out.println(root.getValue());
            preOrder(root.getLeft());
            preOrder(root.getRight());
        }
    

    二、非递归先序遍历

    非递归采用栈的特性进行。

        public static void preOrderIterative(TreeNode root) {
            if (root == null) {
                return;
            }
            Stack<TreeNode> treeNodeStack = new Stack<>();
            treeNodeStack.add(root);
            while (!treeNodeStack.isEmpty()) {
                TreeNode currentNode = treeNodeStack.pop();
                System.out.println(currentNode.getValue());
                if (currentNode.getRight() != null) {
                    treeNodeStack.push(currentNode.getRight());
                }
                if (currentNode.getLeft() != null) {
                    treeNodeStack.push(currentNode.getLeft());
                }
            }
        }
    
    作者:iBrake
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.
  • 相关阅读:
    SQL 脚本 重复执行 约束
    xiami 精选集
    PHP 5 环境配置
    Thread线程类
    创建线程
    C#中简单的正则表达式(也经常会用到的)
    线程的挂起与恢复
    C#操作INI文件
    多线程简介
    单线程简介
  • 原文地址:https://www.cnblogs.com/Brake/p/15257018.html
Copyright © 2011-2022 走看看