二叉树实现(根据层级数组生成二叉树)

Posted 胡乐天

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二叉树实现(根据层级数组生成二叉树)相关的知识,希望对你有一定的参考价值。


public class TreeNode 
      int val;
      TreeNode left;
      TreeNode right;
      TreeNode() 
      TreeNode(int val)  this.val = val; 
      TreeNode(int val, TreeNode left, TreeNode right) 
          this.val = val;
          this.left = left;
          this.right = right;
      

    /**
     *
     * @param arrs 层级遍历数组生成二叉树
     * @return
     */
    public static TreeNode cjdefin(Object [] arrs)
        return cjdefin(arrs, 0);
    

    /**
     *
     * @param arrs 层级遍历数组生成树
     * @param start 父节点开始位置
     * @return
     */
      public static TreeNode cjdefin(Object [] arrs,Integer start)
          if (start > arrs.length || arrs[start] == null )
              return null;
          

          //声明父节点
          TreeNode treeNode = new TreeNode(Integer.parseInt(arrs[start] + ""));
          treeNode.left = cjdefin(arrs,(start + 1) * 2 -1);
          treeNode.right = cjdefin(arrs,(start + 1) * 2);

          return treeNode;
      
  

测试

Object [] arrs = 3,9,20,null,null,15,7;
//根据数组得到二叉树,具体如下图
TreeNode cjdefin = TreeNode.cjdefin(arrs);

以上是关于二叉树实现(根据层级数组生成二叉树)的主要内容,如果未能解决你的问题,请参考以下文章

二叉树实现(根据层级数组生成二叉树)

二叉树 根据二叉树的前序数组和中序序遍历数组生成二叉树

二叉树 根据后序遍历生成二叉树

二叉树定义及遍历的Java实现

构造二叉树

如何根据数组创建二叉树?