1.若为空树则结束递归,深度为0
2.分别递归计算左右字数的深度记为m,n。
3.比较m和n的大小,返回较大的深度加1(加的1是根节点)即为此二叉树的深度
#include<bits/stdc++.h>
using namespace std;
typedef struct BiTNode{
char data;
struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;
void createBiTree(BiTree &t){
char c;
cin>>c;
if(c=='#')
t = NULL;
else{
t = new BiTNode;
t->data = c;
createBiTree(t->lchild);
createBiTree(t->rchild);
}
}
int depth(BiTree t){
if(t==NULL)
return 0;
else{
int m = depth(t->lchild);
int n = depth(t->rchild);
if(m>n)
return (m+1);
else
return (n+1);
}
}
int main(){
BiTree root;
createBiTree(root);
cout<<"此二叉树的深度为:"<<depth(root)<<endl;
return 0;
}

6575

被折叠的 条评论
为什么被折叠?



