其他分享
首页 > 其他分享> > 二叉树先序遍历

二叉树先序遍历

作者:互联网

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

一、递归先序遍历

递归方式比较直接明了。

    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());
            }
        }
    }

标签:遍历,currentNode,递归,二叉树,treeNodeStack,null,root,先序
来源: https://www.cnblogs.com/Brake/p/15257018.html