在给定节点的树中查找同一级别的节点?

时间:2018-01-13 02:09:29

标签: java binary-tree

当必须给出一个级别成员作为输入时,我必须找到同一级别的节点。但我无法得到估计的输出。我没找到我的代码错误的地方。我正在给出我无法识别错误的代码。有人可以解释我在代码中所犯的错误吗?

我的示例输入和输出是,

       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();
        }
    }
}

1 个答案:

答案 0 :(得分:0)

当您检查aux时,目标节点之后具有相同级别的节点不是aux.contains(node)