题目
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
代码
/**
* Definition for binary tree
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode(int x) : val(x), left(NULL), right(NULL) {}
* };
*/
class Solution {
struct pt //dfs用点
{
TreeNode *node; //点
int deep; //对应深度
pt(TreeNode *n=NULL,int d=1):node(n),deep(d){}
};
public:
int maxDepth(TreeNode *root) {
int deep=0;
vector<pt> st(1,pt(root)); //dfs用栈
pt temppt;
while(!st.empty()) //dfs
{
temppt=st.back();
st.pop_back();
if(temppt.node!=NULL)
{
if(temppt.deep>deep)
deep=temppt.deep;
st.push_back(pt(temppt.node->left,temppt.deep+1));
st.push_back(pt(temppt.node->right,temppt.deep+1));
}
}
return deep;
}
};