本文主要是介绍三道题搞懂二叉树深度,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
二叉树的最大深度(LeetCode104)
先表示左树的深度,再表示右树的深度。再进行条件判断
class solution {public int maxDepth(TreeNode root) {if (root == null) {return 0;}int leftDepth = maxDepth(root.left);int rightDepth = maxDepth(root.right);return Math.max(leftDepth, rightDepth) + 1;}
}
二叉树的最小深度(LeetCode111)
先表示左树的深度,再表示右树的深度。再进行条件判断。这里的条件就是:左右分别为空该怎么样返回。
class Solution {public int minDepth(TreeNode root) {if (root == null) {return 0;}int leftDepth = minDepth(root.left);int rightDepth = minDepth(root.right);if (root.left == null) return rightDepth + 1;if (root.right == null) return leftDepth + 1;return Math.min(leftDepth, rightDepth) + 1;}
}
二叉树的直径(LeetCode543)
先表示左树的深度,再表示右树的深度。再进行条件判断。左的深度+右的深度
class Solution {int ans=0;public int diameterOfBinaryTree(TreeNode root) {depth(root);return ans;}public int depth(TreeNode node) {if (node == null) {return 0; }int L = depth(node.left); int R = depth(node.right);ans = Math.max(ans, L+R);return Math.max(L, R) + 1; }
}
想必你也看出来了,代码都大同小异。
通过这三道题想必你已经理解了二叉树的深度相关问题了(⊙o⊙)~~
这篇关于三道题搞懂二叉树深度的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!