求一颗二叉树的最大深度,根节点的深度为1。
思路解析:
//方法一:递归 int height(TreeNode* root){ if(root == NULL) return 0; int left = height(root->left); int right = height(root->right); return 1+max(left,right); }
//方法二:迭代法,使用层序遍历最合适 int height(TreeNode* root){ if(root == NULL) return 0; queue<TreeNode*> que; que.push(root); int count = 0; while (!que.empty()) { count++; int size = que.size(); for(int i = 0; i < size; ++i){ TreeNode* node = que.front(); que.pop(); if(node->left){ que.push(node->left); } if(node->right){ que.push(node->right); } } } return count; }