我知道这个问题可能以自己的方式微不足道,但我试图从级别顺序输入生成二叉树,然后遍历它以表示树已保存在数据结构中。假如输入是 - [a,s,e,r,t,*,w],它将生成一个二进制树的二进制树 -
a
/ \
s e
/\ /\
r t * w
有没有办法实现它,就像从树输入生成二叉树一样。如果有人之前已经遇到过这种问题,请在JAVA中分享某种实现方式,比如使用队列。
答案 0 :(得分:1)
这是一个粗略的想法,但你可以准确地知道给定级别的范围。
假设当前级别包含从i到i + k的x非*元素,那么下一级别将包含从i + k + 1到i + k + 2x的2x元素,现在在i上使用两个指针,在i上使用另一个指针+ k + 1并从左到右为当前级别的每个非*元素分配两个子元素。
类似地,对于下一级别计数级别包含的元素数量是非*元素的数量。并重复。