找出二叉树中两个数的路径重叠的数
Find the number where the path of two numbers in a binary tree overlap
#include<iostream>
using namespace std;
int binTree(int n, int m){
if(n == m)
return m;
else if(n < m)
return binTree(n, m/2);
else if(n > m)
return binTree(n/2, m);
}
int main(){
int n,m;
cin >> n >> m;
cout << binTree(n, m);
}
但是编译器告诉我在我的 binTree 函数中“非空函数不 return 所有控制路径中的值”...我不明白怎么回事?
从逻辑上讲,我理解你的意思。编译器可能会确定您没有使用默认状态关闭 else
考虑删除初始条件并允许将其解析为您的默认状态。
if (n < m)
return binTree(n, m/2);
else if (n > m)
return binTree(n/2, m);
return m
#include<iostream>
using namespace std;
int binTree(int n, int m){
if(n == m)
return m;
else if(n < m)
return binTree(n, m/2);
else if(n > m)
return binTree(n/2, m);
}
int main(){
int n,m;
cin >> n >> m;
cout << binTree(n, m);
}
但是编译器告诉我在我的 binTree 函数中“非空函数不 return 所有控制路径中的值”...我不明白怎么回事?
从逻辑上讲,我理解你的意思。编译器可能会确定您没有使用默认状态关闭 else
考虑删除初始条件并允许将其解析为您的默认状态。
if (n < m)
return binTree(n, m/2);
else if (n > m)
return binTree(n/2, m);
return m