c++ - 找到二叉树中最低的叶子

标签 c++ c binary-tree

我正在尝试比较所有叶子以返回树的最低值,我没有主函数,只有一个插入值的脚本,所以不幸的是我无法调试它。

tpNoArvore * findLowest(tpNoArvore * pNo){
   tpNoArvore * left;
   tpNoArvore * right;
   tpNoArvore * res;

   if (!pNo) return NULL; /* if */

   left = findLowest(pNo->pNoL);
   right = findLowest(pNo->pNoR);
   if(isLeaf(pNo))
      return pNo;
   }  /* if */

   if(!left){
      return right;
   } /* if */

   if(!right){
      return left;
   } /* if */


    return (left->Valor < right->Valor) ? left : right ;

} 

所以,基本上我在这里想要实现的是比较每个节点的两侧以找到最低的。

最佳答案

您的代码返回一个指针似乎很奇怪。我期望类似的东西:

// Assume valor is int
int findLowest(tpNoArvore * pNo){

   if (!pNo) exit(1); /* fatal error */

   // If this is a leaf just return its value
   if(isLeaf(pNo)) return pNo->Valor;

   // Not a leaf

   // Find the lowest value in left part of tree
   int leftValor = findLowest(pNo->pNoL);

   // Find the lowest value in right part of tree
   int rightValor = findLowest(pNo->pNoR);

   // Return the lowest of leftValue ans rightValue
   return (leftValor < rightValor) ? leftValor : rightValor ;

} 

但也许我误解了你的问题。

关于c++ - 找到二叉树中最低的叶子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29272017/

相关文章:

c++ - 将 QObject 类公开到 qml 时,在 Qt 中管理内存的正确方法?

c++ - undefined reference openscenegraph

c - 设置 LD_LIBRARY_PATH 时,R 和外部 C 库 "cannot open shared object file"

c - openCV中的矩阵运算

java - 从原始树中删除深度 k 以下的所有子树?

java - 最大/最小堆树可以包含重复值吗?

c++ - 返回值语法重载 const 和非 const 函数

.net - 在 vector 的非托管 vector 中访问二维数组 (C++)

c - 正在做 (ptr && *ptr) 检查是否有任何值分配给 ptr 的好方法?我的一直崩溃

java - 二分查找 - 错误