java二叉树创建

最近在刷剑指offer,里面提到二叉树,一直以来用java的多,所以编写了一个java二叉树结构和工具类。工具类包括创建,遍历等方法。定期更新。

关于输入,假如我的二叉树结构为,则输入的数据为1 2 0 0 3 0 0 。如果为,则输入数据为 1  2  3  0   0   0  4  0  5 0  0

,其中空格应该为换行。采取的是先序输入。如果要改为中序,则可以用栈。以下是代码。

class TreeNode {
    public int val ;
    public TreeNode left ;
    public TreeNode right ;
    public TreeNode(int val){
        this.val = val;
    }
}
public class TreeBinaryFunction {
    
    public static TreeNode CreateTreeBinary(TreeNode treeNode){
        Scanner scanner = new Scanner(System.in);
        int num = scanner.nextInt();
        if(num == 0){
            return null;
        }
        else{
            treeNode.val = num;
            treeNode.left = CreateTreeBinary(new TreeNode(0));
            treeNode.right = CreateTreeBinary(new TreeNode(0));
            return treeNode;
        }
    }
    
    public static void PrintTreeBinary(TreeNode treeNode){
        if(treeNode!=null){
            System.err.println(treeNode.val);
            PrintTreeBinary(treeNode.left);
            PrintTreeBinary(treeNode.right);
        }
    }
    
}

 

转载于:https://www.cnblogs.com/CloudStrife/p/7337913.html

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值