Fork me on GitHub

104. Maximum Depth of Binary Tree

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.

解析

// Maximum Depth of Binary Tree
class Solution {
public:

	// Time Limit Exceeded
	int maxDepth1(TreeNode *root) {

		if (!root)
		{
			return	0;
		}

		return (maxDepth(root->left) > maxDepth(root->right)) ? (maxDepth(root->left) + 1) : (maxDepth(root->right)+1);
	}

	// 这样写不会超时
	int maxDepth(TreeNode* root) {
		if (root == NULL) 
			return 0;
		return max(maxDepth(root->left), maxDepth(root->right)) + 1;
	}
	int maxDepth(TreeNode *root)
	{
		if (!root)
		{
			return 0;
		}
		queue<TreeNode*> que;
		que.push(root);

		int level = 0;
		while (!que.empty())
		{
			int size = que.size();
			for (int i = 0; i < size;i++)
			{
				TreeNode* temp = que.front();
				que.pop();

				if (temp->left)
				{
					que.push(temp->left);
				}
				if (temp->right)
				{
					que.push(temp->right);
				}
			}
			level++;
		}

		return level;
	}
};

104. Maximum Depth of Binary Tree

posted @ 2018-01-10 17:57  ranjiewen  阅读(213)  评论(0编辑  收藏  举报