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;

    }

 

 

 

你可能感兴趣的:(LeetCode)