当前位置: 首页 > news >正文

学校asp网站做网站大公司

学校asp网站,做网站大公司,网站移动站,家具网站建设策划方案450删除二叉搜索树节点 删除结点分为2种情况: 1.结点的孩子只有一个或没有,则直接用孩子或空替代 2.结点的孩子有两个,用左孩子替代,将左孩子的右孩子移到结点右子树的最左结点 解法一:递归 class Solution {publ…

450删除二叉搜索树节点

删除结点分为2种情况:

1.结点的孩子只有一个或没有,则直接用孩子或空替代

2.结点的孩子有两个,用左孩子替代,将左孩子的右孩子移到结点右子树的最左结点

解法一:递归

class Solution {public TreeNode deleteNode(TreeNode root, int key) {if (root==null){return root;}if (root.val==key){if (root.left==null){return root.right;}else if (root.right==null){return root.left;}else {TreeNode son = root.left;if (son.right!=null){TreeNode rightnode = son.right;TreeNode temp = root.right;while (temp.left!=null){temp = temp.left;}temp.left = rightnode;}son.right = root.right;return son;}}else if (root.val>key){root.left = deleteNode(root.left, key);}else {root.right = deleteNode(root.right, key);}return root;}
}

解法二:迭代

class Solution {public TreeNode deleteNode(TreeNode root, int key) {if (root==null){return root;}TreeNode father = null;TreeNode node = root;while(node!=null){if (node.val==key){break;}else if (node.val>key){father = node;node = node.left;} else {father = node;node = node.right;}}if (node==null){return root;}TreeNode son = null;if (node.left==null){son = node.right;}else if (node.right==null){son = node.left;}else {son = node.left;if (son.right!=null){TreeNode rightnode = son.right;TreeNode temp = node.right;while (temp.left!=null){temp = temp.left;}temp.left = rightnode;}son.right = node.right;}if (father!=null){if (father.val<node.val){father.right = son;}else {father.left = son;}}else {root = son;}return root;}
}

669修剪二叉搜索树

递归:

如果结点在范围内,则左孩子右孩子进入递归,返回结点

如果结点小于范围,则右孩子进入递归,返回右孩子递归结果

如果结点大于范围,则左孩子进入递归,返回左孩子递归结果

class Solution {public TreeNode trimBST(TreeNode root, int low, int high) {if (root==null){return root;}if (root.val>=low&&root.val<=high){root.left = trimBST(root.left, low, high);root.right = trimBST(root.right, low, high);return root;}else if (root.val<low){return trimBST(root.right, low, high);}else {return trimBST(root.left, low, high);}}
}

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

使用递归,找到中间值为此结点值,再将数组分割两半进入递归得到左孩子和右孩子

class Solution {public TreeNode sortedArrayToBST(int[] nums) {if (nums.length==0){return null;}if (nums.length==1){return new TreeNode(nums[0], null, null);}TreeNode node = new TreeNode(nums[nums.length/2], null, null);node.right = sortedArrayToBST(Arrays.copyOfRange(nums, nums.length/2+1, nums.length));node.left = sortedArrayToBST(Arrays.copyOfRange(nums, 0, nums.length/2));return node;}
}

收获

注意二叉搜索树的结点顺序

http://www.yayakq.cn/news/244882/

相关文章:

  • wordpress建设网站wordpress不同用户不同菜单
  • 网站推广的方法和途径制作ppt模板的素材图片
  • 如何做明星的个人网站wordpress文章编辑插件
  • 网站建设模式什么网站做弹窗广告好
  • 上海备案证查询网站查询网站模拟登录wordpress
  • 淘宝客网站做百度竞价抖音seo优化系统招商
  • 手机网站 建设烟台城乡建设学校96级给排水网站
  • 本地网站做淘宝客佛山网站建设公司-印象互动
  • 建设旅游网站的市场分析怎么自己做网站卖东西
  • 二维码导航网站源码四大免费网站
  • 固始做网站成都营销型网站公司电话
  • 孝感网站建设公司wordpress显示多少页
  • 网站维护费大概多少广西网站建设原创
  • 企业公司网站校区网站建设
  • 网站备案号如何查询密码百度推荐现在为什么不能用了
  • 小型网站建设费用手机微信一体网站建设
  • 网站制作软件图标天琥设计培训学校官网
  • 我做的网站服务器别人没法左键点击下载呢网站制作方案和主要内容
  • 网站开发还是做数据库开发常用免费ppt模板
  • 上海市建设安全协会网站打不开白云区建网站
  • 网站宣传文案泰州网站建设外包
  • 站长源码网页链接下载
  • 为什么要建设医院网站兼职网网站建设方案
  • 专业微网站开发网站怎么做网页
  • 个人网站设计总结信息发布网站推广技巧
  • 人力资源三网站建设跨境电商一件代发货源平台
  • 网站备案号如何获得南通宏仁建设工程有限公司招聘网站
  • 做效果图比较好的模型网站建设电影网站代码
  • 郑州高新区建设环保局网站关键词seo排名怎么样
  • 自己做视频网站会不会追究版权wordpress 设置语言