java根据数组建立二叉树,编写递归算法,计算二叉树中叶子结点的数目java
题目一
二叉树题——数组转二叉树
根据给定的数组按照指定条件转换为高度平衡的二叉搜索树
具体题目如下
解法
/** *二叉树节点的定义。*公共类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 TreeNode sortedarrayobst(int[]nums){ return method(nums,0,nums。长度-1);}公共TreeNode方法(int[] nums,int lf,int rg){ if(lfrg){ return null;} int mid=lf(rg-lf)/2;TreeNode root=new TreeNode(nums[mid]);root.left=method(nums,lf,mid-1);root.right=method(nums,mid 1,rg);返回根目录;}}
题目二
数组题——验证数组中数值
根据给定的数组验证数组中数值是否出现多次
具体题目如下
解法
类解决方案{ public boolean包含重复的(int[]nums){ HashSetInteger set=new HashSetInteger();for(int I=0;单位:长度我){如果(!设置。add(nums[I]){ return true;}设置。add(nums[I]);}返回false}}
题目三
数组题——验证数组中数值
根据给定的数组验证数组中数值是否存在重复
具体题目如下
解法
class Solution { public boolean contains nearbyduplicate(int[]nums,int k) { MapInteger,Integer map=new HashMapInteger,Integer();int length=nums . length for(int I=0;英语字母表中第九个字母长度;I){ int num=nums[I];如果(图。包含键(数字)I-map。get(num)=k){返回true} map.put(num,I);}返回false}}到此这篇关于剑指提供之爪哇算法习题精讲数组与二叉树的文章就介绍到这了,更多相关爪哇数组内容请搜索盛行信息技术以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行它!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。