leetcode_question_104 Maximum Depth of Binary Tree

Given a binary tree, find its maximum depth.

The maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node.

DFS:

int maxDepth(TreeNode *root) {
        // Start typing your C/C++ solution below
        // DO NOT write int main() function
        if(root == NULL) return 0;
        int left = maxDepth(root->left);
        int right = maxDepth(root->right);
        return left > right ? left + 1 : right +1;
    }


BFS:

int maxDepth(TreeNode *root) {
        // Start typing your C/C++ solution below
        // DO NOT write int main() function
        if(root == NULL) return 0;
    	queue<TreeNode*> que;
		que.push(root);
		int count = 1;
		int depth = 0;
		while(!que.empty())
		{
			TreeNode* tmp = que.front();
			que.pop();
			count--;

			if(tmp->left)
				que.push(tmp->left);
			if(tmp->right)
				que.push(tmp->right);
			if(count == 0)
			{
				depth++;
				count=que.size();
			}
		}
		return depth;
    }
原文地址:https://www.cnblogs.com/keanuyaoo/p/3331252.html