标签:
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.
class Solution { public: int maxDepth(TreeNode *root) { if(root == NULL){ return 0; } deque<TreeNode*> deqNodes; deqNodes.push_back(root); int depth = 0; int alreadyDoneCount = 1; while(deqNodes.empty() == false){ TreeNode* lastNode = deqNodes.back(); deqNodes.pop_back(); alreadyDoneCount--; if(lastNode->left){ deqNodes.push_front(lastNode->left); } if(lastNode->right){ deqNodes.push_front(lastNode->right); } if(alreadyDoneCount == 0){ ++depth; alreadyDoneCount = deqNodes.size(); } } return depth; } };
class Solution { public: int maxDepth(TreeNode *root) { if(root == NULL ){ return 0; }else if(root != NULL && (root->left == NULL && root->right == NULL)){ return 1; } int leftTreeDepth = maxDepth(root->left); int rightTreeDepth = maxDepth(root->right); int maxDepth = leftTreeDepth > rightTreeDepth ? leftTreeDepth : rightTreeDepth; return maxDepth + 1; } };
思路:树的遍历当然可以用递归,但会比较慢。
http://www.waitingfy.com/archives/1586
LeetCode Maximum Depth of Binary Tree
标签:
原文地址:http://blog.csdn.net/fox64194167/article/details/44096519