(LeetCode 面试经典 150 题) 104. 二叉树的最大深度 (深度优先搜索dfs)
题目:104. 二叉树的最大深度
思路:深度优先搜索dfs,时间复杂度0(n)。
C++版本:
/*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}* TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/
class Solution {
public:int maxDepth(TreeNode* root) {if(root==nullptr) return 0;int left=maxDepth(root->left);int right=maxDepth(root->right);return max(left,right)+1;}
};## 标题
JAVA版本:
/*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val = val; }* TreeNode(int val, TreeNode left, TreeNode right) {* this.val = val;* this.left = left;* this.right = right;* }* }*/
class Solution {public int maxDepth(TreeNode root) {if(root==null) return 0;int left=maxDepth(root.left);int right=maxDepth(root.right);return Math.max(left,right)+1;}
}
GO版本:
/*** Definition for a binary tree node.* type TreeNode struct {* Val int* Left *TreeNode* Right *TreeNode* }*/
func maxDepth(root *TreeNode) int {if root==nil {return 0}left:=maxDepth(root.Left)right:=maxDepth(root.Right)return max(left,right)+1
}