【问题标题】:Find the level of the key in a binary search tree在二叉搜索树中查找键的级别
【发布时间】:2016-06-07 23:53:25
【问题描述】:
int levelBST(Node node,int key,int level){
  if(node==null)
     return;
  if(node.data==key){
     return level;
  }
  else if(node.data>key){
     return levelBST(node->left,key,level+1);    
  }
  else return levelBST(node-right,key,level+1);
}

上面的代码sn-p是正确的还是有一些问题。请帮忙。

【问题讨论】:

  • 看起来不错。如果(节点==空)返回;这里返回-1,表示没有找到。
  • 在采访中被问到。面试官说代码有一些错误。除了你上面写的东西。
  • 您不需要将级别作为参数传递。它应该在每次调用时自动增加。例如 return levelBST(node->left,key)+1;在第一个 return 语句中它将是 0;
  • 好的,我知道这是错字,但 node-right 是 node-> 对吧?

标签: algorithm recursion data-structures binary-search-tree


【解决方案1】:

我会这样实现它:(假设Node 是一个指针)

int levelBST(Node node, int key){
  if(node==null)
     return -1;

  if(node->data < key){
      return levelBST(node->right, key);
  }
  if(node->data > key){
      return levelBST(node->left , key);    
  }
  return 0;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-16
    • 1970-01-01
    • 2020-12-09
    • 2011-02-05
    • 2021-10-20
    • 1970-01-01
    相关资源
    最近更新 更多