当必须给出一个级别成员作为输入时,我必须找到同一级别的节点。但我无法得到估计的输出。我没找到我的代码错误的地方。我正在给出我无法识别错误的代码。有人可以解释我在代码中所犯的错误吗?
我的示例输入和输出是,
10
/ \
17 12
/ \ / \
10 8 1 3
例如: -
输入:17
输出:12
输入:1
输出:8或3或10
这是我的示例代码,
public void printNode(Node node)
{
Queue<Node> que = new LinkedList<Node>();
Queue<Node> aux = new LinkedList<Node>();
que.add(root);
while(!que.isEmpty())
{
Node temp = que.poll();
System.out.println(temp+" ");
if(temp.left != null)
{
que.add(temp.left);
aux.add(temp.left);
}
if(temp.right != null)
{
que.add(temp.right);
aux.add(temp.right);
}
if(aux.contains(node))
{
while(!aux.isEmpty())
{
if(aux.poll() != node)
System.out.print(aux.poll()+" ");
}
}
else
{
aux.clear();
}
}
}
答案 0 :(得分:0)
当您检查aux
时,目标节点之后具有相同级别的节点不是aux.contains(node)
。