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