注意一下用后序遍历
int CountDepth(TreeNode* root) { int HR,HL,MaxH; if(!root){ return 0; //TODO } else if(root) { HL=CountDepth(root->left); HR=CountDepth(root->right); MaxH=(HR>HL)?HR :HL; return MaxH+1; } }
完整代码:
#include#include typedef struct TreeNode{ TreeNode* left; TreeNode* right; int value; }TreeNode; void CreateTree(TreeNode** root){ char c; c=getchar(); if(c==' '){ *root=NULL; //TODO } else{ *root=(TreeNode*)malloc(sizeof(TreeNode)); if(*root==NULL){ exit(1); //TODO } (*root)->value=c-48; CreateTree(&((*root)->left)); CreateTree(&((*root)->right)); } } int CountDepth(TreeNode* root) { int HR,HL,MaxH; if(!root){ return 0; //TODO } else if(root) { HL=CountDepth(root->left); HR=CountDepth(root->right); MaxH=(HR>HL)?HR :HL; return MaxH+1; } } int main(){ TreeNode* root=(TreeNode*)malloc(sizeof(TreeNode)); CreateTree(&root); int result=CountDepth(root); printf("%d",result);; return 0; }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)