数据结构 --- 二叉树

时间:2019-12-16
本文章向大家介绍数据结构 --- 二叉树,主要包括数据结构 --- 二叉树使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

简介

一个节点最多有两颗子树的数据结构,通常称为左子树、右子树

二叉树的遍历

前序遍历:根节点->左子树->右子树

中序遍历:左子树->根节点->右子树

后序遍历:左子树->右子树->根节点

其中最重要的、应用最多的是中序遍历。

中序遍历

步骤:

1、遍历节点的左子树

2、判断该节点是否有左子树,如果有,执行第一步;否则打印该节点。

3、判断该节点是否有右子树,如果有,则执行第一步;否则返回到上一级节点。

代码:

    private static List<Integer> inorderTraversal(TreeNode root) {
        Stack<TreeNode> stack = new Stack<>();
        List<Integer> resultList = new ArrayList<>();
        TreeNode cur = root;

        while (cur != null || !stack.isEmpty()) {
            if (cur != null) {
                stack.push(cur);
                cur = cur.left;
            } else {
                cur = stack.pop();
                resultList.add(cur.val);
                cur = cur.right;
            }
        }

        return resultList;
    }

原文地址:https://www.cnblogs.com/sniffs/p/12050975.html