根据先根序列创建二叉树

//根据先根序列来创建一棵二叉树,list中空结点用null表示
private TreeNode createTree(List list){
	if(list.isEmpty()){//这样想递归出口,若一开始list为空,那当然就是空子树了,递归要从宏观
		return null;
	}
	TreeNode out = list.remove(0);
	TreeNode root = null;
	if(out != null){
		root = new TreeNode(out.val);
		root.left = createTree(list);
		root.right = createTree(list);
	} else{
		return null;//这里空结点也作为一个递归出口,因为一个子节点为空了,需要结束这个过程,回到另一个过程
	}
		
	//创建完了二叉树就要返回,上面左右子树都创建好了
	return root;
}

你可能感兴趣的:(杂)