提示:两鬓可怜青 只为相思老
题目
给定一个 N 叉树,找到其最大深度。
最大深度是指从根节点到最远叶子节点的最长路径上的节点总数。
输入 1 -1 3 2 4 -1 5 6
输出 3
思路1
本题首先想到的因该是层序遍历 不过一点不一样就是这里是N叉树 不一样之处在于添加结点的时候需要加一个遍历
int LevelTravel(BiTree* &T){
if(T==NULL) return 0;
queue<BiTree*> Q;hight=0;
Q.push(T);
while(!Q.empty()){
int size=Q.size();
for(int i=0;i<size;i++){
BiTree* cur=Q.front();
Q.pop();
for(int i=0;i<3;i++){
if(T.A[i]!=NULL){
Q.push_back(T.A[i]);
}
}
}
hight++;
}
return hight;
}
思路2
这里也是可以使用递归来写 但是同样的这里深入同样需要多加一个for循环 而且这里更像是一个后序遍历
int RePastTravel(BiTree* T){
if(T==NULL) return 0;
int hight=0;
for(int i=0;i<3;i++){
hight=max(hight,RePastTravel(T->A[i]));//从各个孩子中寻找最高的
}
return ++hight;
}
总结
本题就不写成可执行的了
csdn文章推荐受影响解决办法10个字10行
csdn文章推荐受影响解决办法10个字10行
csdn文章推荐受影响解决办法10个字10行
csdn文章推荐受影响解决办法10个字10行
csdn文章推荐受影响解决办法10个字10行
csdn文章推荐受影响解决办法10个字10行
csdn文章推荐受影响解决办法10个字10行
csdn文章推荐受影响解决办法10个字10行
csdn文章推荐受影响解决办法10个字10行
csdn文章推荐受影响解决办法10个字10行