// 注意递归边界
int depth(node* root){if(root ==NULL)return0;if(root->left ==NULL&& root->right ==NULL)return1;
int ldepth =depth(root->left)+1;
int rdepth =depth(root->right)+1;returnmax(ldepth,rdepth);}
非递归求法
// 利用层次遍历来求深度
int depth=0;
int travel(TreeNode *root){
queue <TreeNode *> q;if(root ==NULL)return0;
q.push(root);while(!q.empty()){
depth ++;
int len = q.size();for(int i=0;i<len;i++)//一层一层遍历,这步很关键{
TreeNode *p = q.front();if(p->left !=NULL) q.push(p->left);if(p->right !=NULL) q.push(p->right);
q.pop();}}return depth
}