2017-06-21 80 views
-4

https://www.hackerrank.com/challenges/binary-search-tree-insertion/problem插入二叉树(级别顺序)

问题是我已经通过了所有的测试案例,除了测试案例#5

我的代码是:

class Node { 
    int data; 
    Node left; 
    Node right; 
} 


static Node Insert(Node root,int value) { 
// Level order traversal 
    Queue<Node> q = new LinkedList<Node>(); 
    Node newnode = new Node(); 
    newnode.data=value; 
    if(root!=null) 
     q.offer(root); 

    while(!q.isEmpty()) { 
     Node tmp = q.poll(); 
     if(tmp.data >= value) { 
      if(tmp.left!=null) 
       q.offer(tmp.left); 
      else { 
       tmp.left = newnode; 
       break; 
      } 
     } else { 
     if(tmp.right!=null) 
      q.offer(tmp.right); 
     else { tmp.right = newnode; break;} 
     } 
    } 
     return root; 
    } 
+1

您有问题吗? – stevieb

回答

0

一个错误我可以看到是在这部分代码 -

if(tmp.data >= value) { 
     if(tmp.left != null) 
      q.offer(tmp.left); 
     else { 
      tmp.left = newnode; 
      break; 
     } 
    } 

请参阅,在这里,即使要输入的值等于根,仍然将其插入到左子树中。

你不觉得这是一个错误吗?

这是我能找到的。

希望这会有所帮助!