思路一:递归遍历
代码:
class Solution {
public:
int TreeDepth(TreeNode* pRoot) {
if (pRoot == NULL)
return 0;
else{
int left = TreeDepth(pRoot->left);
int right = TreeDepth(pRoot->right);
return max(left,right) + 1;
}
}
};
思路二:利用队列,遍历每一层,遍历一层,count++,一共有多少层,深度就是多少
代码:
else{
queue
queue.push(pRoot);
int count = 0;
while(!queue.empty()){
int n = queue.size();
for(int i = 0;i < n; i++){
TreeNode* cur = queue.front();
queue.pop();
if(cur->left != NULL)
queue.push(cur->left);
if(cur->right != NULL)
queue.push(cur->right);
}
count++;
}
return count;
}



