leetcode 104. Maximum Depth of Binary Tree DFS深度优先搜索

来源:互联网 发布:加内特08年总决赛数据 编辑:程序博客网 时间:2024/05/22 16:30

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);        }    }};
阅读全文
0 0