本文主要是介绍LeetCode104. 二叉树的最大深度(java),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1.问题
给定一个二叉树,找出其最大深度。
二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。
说明: 叶子节点是指没有子节点的节点。
原题链接;
2.解答
/*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode(int x) { val = x; }* }*/
// 递归,数的最深深度 == max(左子树最大深度,右子树最大深度) + 1;
class Solution {public int maxDepth(TreeNode root) {return getDepth(root);}public int getDepth(TreeNode root){int leftCount = 0;int rightCount = 0;if(root == null ) return 0;if(root.left== null && root.right== null) return 1;if(root.left!= null){leftCount= getDepth(root.left)+1;}if(root.right!=null){rightCount = getDepth(root.right) +1;}return Math.max(leftCount,rightCount);}
}
如果把基础示例简化为 root是否为null,代码更简洁。
class Solution {public int maxDepth(TreeNode root) {return getDepth(root);}public int getDepth(TreeNode root){int leftCount = 0;int rightCount = 0;if(root == null ) return 0;leftCount= getDepth(root.left)+1;rightCount = getDepth(root.right) +1;return Math.max(leftCount,rightCount);}
}
这篇关于LeetCode104. 二叉树的最大深度(java)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!