problem:
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.
Tree Depth-first Searchthinking:
深度优先搜索,记录最大深度
code:
/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ class Solution { public: int maxDepth(TreeNode *root) { if(root==NULL) return 0; int max_dep=0; dfs(0,max_dep,root); return max_dep; } protected: void dfs(int dep,int &max_dep,TreeNode *node) { if(node==NULL) return; dep++; max_dep = max(max_dep,dep); if(node->left!=NULL) dfs(dep,max_dep,node->left); if(node->right!=NULL) dfs(dep,max_dep,node->right); } };
leetcode || 104、Maximum Depth of Binary Tree
原文地址:http://blog.csdn.net/hustyangju/article/details/45166393