欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 美食 > 力扣每日刷题

力扣每日刷题

2025/8/25 13:56:50 来源:https://blog.csdn.net/2301_79390585/article/details/145074108  浏览:    关键词:力扣每日刷题

108. 将有序数组转换为二叉搜索树

解题思路:给了一个有序的数组,把这个数组从中间分开,挑出最中间的数作为当前节点,此数左边就是该节点的左子树,右边就是该节点的右子树。然后以这个数组分开的左右数组作为参数进行递归连接左右子树。

代码:


class Solution {public static TreeNode sortedArrayToBST(int[] nums) {return create(nums,0,nums.length-1);}public static TreeNode create(int[] nums,int l,int r){if(l>r){return null;}int mid=(l+r)/2;TreeNode root=new TreeNode(nums[mid]);root.left=create(nums,l,mid-1);root.right=create(nums,mid+1,r);return root;}
}

543. 二叉树的直径

解题思路:通过观察题目可以发现最远的两个节点一定是某一棵树的左右子树的端点,这个子树不一定是根节点的那一棵树,deep方法的作用就是检查这棵树的最远的节点的长度。diameterOfBinaryTree方法的作用就是对每一棵树都进行一个遍历然后选出最大的进行返回。

代码:

class Solution {public int diameterOfBinaryTree(TreeNode root) {if(root==null){return 0;}return Math.max(deep(root.left)+deep(root.right),Math.max(diameterOfBinaryTree(root.left),diameterOfBinaryTree(root.right)));}public int deep(TreeNode root){if(root==null){return 0;}return Math.max(deep(root.left),deep(root.right))+1;}
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词