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即可。
代码如下:
/* class TreeNode
{
int val;
TreeNode left;
TreeNode right;
TreeNode(int x) { val = x; }
}*/
public class Solution
{
public int maxDepth(TreeNode root)
{
if(root==null)
return 0;
else
return DFS(root);
}
private int DFS(TreeNode root)
{
if(root==null)
return 0;
else
{
int left=DFS(root.left)+1;
int right=DFS(root.right)+1;
return Math.max(left, right);
}
}
}
下面是C++的做法,就是一个简单的DFS深度优先遍历的做法
代码如下:
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
/*
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;
else
{
int left = maxDepth(root->left) + 1;
int right = maxDepth(root->right) + 1;
return max(left, right);
}
}
};