[JavaDS]二叉树

博客介绍了学习二叉树需掌握的定义,包括二叉树、叶子节点、兄弟节点等。详细说明了二叉树的三种遍历方式,即先序、中序和后序。还提及定义二叉树内部类TreeNode实现遍历,最后指出典型面试题有助于理解遍历方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

学习二叉树必须首先掌握以下定义:

二叉树:由根节点和左右子树组成的树。左右子树的顺序不可颠倒,每个节点最多有两个子树。

叶子节点:度为0的树。

兄弟节点:两个节点有相同的父节点。

二叉树的遍历:

先序:先遍历根节点再遍历左右孩子。

中序:先遍历左孩子再遍历根节点再遍历右孩子。

后序:先遍历左右孩子,再遍历根节点。

实现:

定义二叉树的内部类TreeNode 

public class TestbinaryTree {
    class TreeNode{
//        内部类
        char value;
        TreeNode left;
        TreeNode right;
        public TreeNode(char value){
            this.value=value;
        }
    }

先序:

 //二叉树的前序遍历
    void binaryTreePrevOrder(TreeNode root){
        if(root==null){
            return;//函数结束
        }
        //root不为空时 先递归左边 再递归右边
            System.out.println(root.value+" ");
            binaryTreePrevOrder(root.left);
            binaryTreePrevOrder(root.right);
    }

中序:

  //二叉树的中序遍历 左 根 右
    void binaryTreeInOrder(TreeNode root){
        if(root==null){
            return;//函数结束
        }
        binaryTreePostOrder(root.left);
//        root的left为空时打印root.value
        System.out.println(root.value + " ");
        binaryTreePostOrder(root.right);
    }

后序:

//二叉树的后序遍历
    void binaryTreePostOrder(TreeNode root){
        binaryTreePostOrder(root.left);
        binaryTreePostOrder(root.right);
        //        root的right为空时打印root.value
        System.out.println(root.value + " ");
    }
}

一些典型的面试题,有助于帮助你更好的理解二叉树的三种遍历方法。

//根据字符串先序遍历创建二叉树
    public int i=0;
    TreeNode createTestTree(String s){
        TreeNode root=null;
        if(s.charAt(i)!='#'){
            root=new TreeNode(s.charAt(i));//根
            i++;
            root.left=createTestTree(s);//左
            root.right=createTestTree(s);//右
        }else{
            i++;
        }
    }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值