104、二叉树的最大深度
给定一个二叉树,找出其最大深度。
二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。
说明: 叶子节点是指没有子节点的节点。
示例:
给定二叉树 [3,9,20,null,null,15,7]
3
/ \
9 20
/ \
15 7
返回它的最大深度 3 。
题解:
可以利用DFS递归调用,根结点不存在说明高度为0。C++11里nullptr代表空指针。
/* C++ */
1 /** 2 * Definition for a binary tree node. 3 * struct TreeNode { 4 * int val; 5 * TreeNode *left; 6 * TreeNode *right; 7 * TreeNode() : val(0), left(nullptr), right(nullptr) {} 8 * TreeNode(int x) : val(x), left(nullptr), right(nullptr) {} 9 * TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {} 10 * }; 11 */ 12 class Solution { 13 public: 14 int maxDepth(TreeNode* root) { 15 if(root==nullptr) return 0; 16 return max(maxDepth(root->left),maxDepth(root->right))+1; 17 } 18 };
/* JavaScript */
深度优先遍历
1 /** 2 * Definition for a binary tree node. 3 * function TreeNode(val, left, right) { 4 * this.val = (val===undefined ? 0 : val) 5 * this.left = (left===undefined ? null : left) 6 * this.right = (right===undefined ? null : right) 7 * } 8 */ 9 /** 10 * @param {TreeNode} root 11 * @return {number} 12 */ 13 var maxDepth = function(root) { 14 let res = 0; 15 const dfs = (n,l) => { //l代表层级 16 if(!n) {return;} 17 if(!n.left && !n.right) { 18 res = Math.max(res, l); //判断最大深度 19 } 20 dfs(n.left, l+1); 21 dfs(n.right, l+1); 22 } 23 dfs(root,1); 24 return res; 25 };
1 /** 2 * Definition for a binary tree node. 3 * function TreeNode(val, left, right) { 4 * this.val = (val===undefined ? 0 : val) 5 * this.left = (left===undefined ? null : left) 6 * this.right = (right===undefined ? null : right) 7 * } 8 */ 9 /** 10 * @param {TreeNode} root 11 * @return {number} 12 */ 13 var maxDepth = function(root) { 14 if(!root) { 15 return 0; 16 }else{ 17 const left=maxDepth(root.left); 18 const right=maxDepth(root.right); 19 return Math.max(left,right)+1; 20 } 21 };
本文作者:oaoa
本文链接:https://www.cnblogs.com/oaoa/p/14392402.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步