我已经创建了一个linkedlist并在上面添加了一些元素。现在我想把linkedlist中的所有元素添加到树中。仅在rightnode上。leftnode将为空。树就跟下面一样--
10
\
20
\
30
\
40
我编写了以下代码。但它覆盖了它的节点。没有给出正确的输出。我的代码如下--
我的二叉树是--
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;
}
}
Queue<Integer> lst = new LinkedList<>();
lst.add(10);
lst.add(20);
lst.add(30);
lst.add(40);
TreeNode nRoot=null;
while(!lst.isEmpty()){
if(nRoot==null)
nRoot = new TreeNode(lst.poll());
else{
nRoot.right = new TreeNode(lst.poll());
nRoot=nRoot.right;
}
}
这就是输出--
Output - [10]
Expected Output - [10,null,20,null,30,null,40]
请帮忙!!!
1条答案
按热度按时间5n0oy7gb1#
您缺少树的每个节点的“父节点”。所以不能返回到树的根元素。
所以你的代码应该是这样的:
然后:
现在您可以这样打印树: