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

新余代网站建设公司精品网站建设

新余代网站建设公司,精品网站建设,旅游网站开发需求,wordpress 图片展示108. 将有序数组转换为二叉搜索树 简单 给你一个整数数组 nums ,其中元素已经按 升序 排列,请你将其转换为一棵 高度平衡 二叉搜索树。 高度平衡 二叉树是一棵满足「每个节点的左右两个子树的高度差的绝对值不超过 1 」的二叉树。 示例 1: …

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

简单
给你一个整数数组 nums ,其中元素已经按 升序 排列,请你将其转换为一棵 高度平衡 二叉搜索树。
高度平衡 二叉树是一棵满足「每个节点的左右两个子树的高度差的绝对值不超过 1 」的二叉树。

示例 1:
[图片]
输入:nums = [-10,-3,0,5,9]
输出:[0,-3,9,-10,null,5]
解释:[0,-10,5,null,-3,null,9] 也将被视为正确答案:
[图片]

示例 2:
[图片]
输入:nums = [1,3]
输出:[3,1]
解释:[1,null,3] 和 [3,1] 都是高度平衡二叉搜索树。

提示:

  • 1 <= nums.length <= 10(4)
  • -10(4) <= nums[i] <= 10(4)
  • nums 按 严格递增 顺序排列

代码

package __tree/*** Definition for a binary tree node.* type TreeNode struct {*     Val int*     Left *TreeNode*     Right *TreeNode* }*/
func sortedArrayToBST(nums []int) *TreeNode {if len(nums) == 0 {return nil}//先序排列,根左右mid := len(nums) / 2x := nums[mid]root := &TreeNode{x, nil, nil}root.Left = sortedArrayToBST(nums[:mid])root.Right = sortedArrayToBST(nums[mid+1:])return root
}

538. 把二叉搜索树转换为累加树

中等
给出二叉 搜索 树的根节点,该树的节点值各不相同,请你将其转换为累加树(Greater Sum Tree),使每个节点 node 的新值等于原树中大于或等于 node.val 的值之和。
提醒一下,二叉搜索树满足下列约束条件:

  • 节点的左子树仅包含键 小于 节点键的节点。
  • 节点的右子树仅包含键 大于 节点键的节点。
  • 左右子树也必须是二叉搜索树。
    注意:本题和 1038: https://leetcode-cn.com/problems/binary-search-tree-to-greater-sum-tree/ 相同

示例 1:
[图片]
输入:[4,1,6,0,2,5,7,null,null,null,3,null,null,null,8]
输出:[30,36,21,36,35,26,15,null,null,null,33,null,null,null,8]
示例 2:
输入:root = [0,null,1]
输出:[1,null,1]
示例 3:
输入:root = [1,0,2]
输出:[3,3,2]
示例 4:
输入:root = [3,2,4,1]
输出:[7,9,4,10]

提示:

  • 树中的节点数介于 0 和 10(4)( )之间。
  • 每个节点的值介于 -10(4) 和 10(4) 之间。
  • 树中的所有值 互不相同 。
  • 给定的树为二叉搜索树。

代码

package __tree/*** Definition for a binary tree node.* type TreeNode struct {*     Val int*     Left *TreeNode*     Right *TreeNode* }*/
var pre intfunc convertBST(root *TreeNode) *TreeNode {pre = 0 //这一部很重要traversal(root)return root
}func traversal(cur *TreeNode) {if cur == nil {return}traversal(cur.Right)cur.Val += prepre = cur.Valtraversal(cur.Left)
}
func convertBST(root *TreeNode) *TreeNode {var sum inttraverse(root, &sum)return root
}func traverse(node *TreeNode, sum *int) {if node == nil {return}traverse(node.Right, sum)*sum += node.Valnode.Val = *sumtraverse(node.Left, sum)
}

669. 修剪二叉搜索树

中等
给你二叉搜索树的根节点 root ,同时给定最小边界low 和最大边界 high。通过修剪二叉搜索树,使得所有节点的值在[low, high]中。修剪树 不应该 改变保留在树中的元素的相对结构 (即,如果没有被移除,原有的父代子代关系都应当保留)。 可以证明,存在 唯一的答案 。
所以结果应当返回修剪好的二叉搜索树的新的根节点。注意,根节点可能会根据给定的边界发生改变。

示例 1:
[图片]
输入:root = [1,0,2], low = 1, high = 2
输出:[1,null,2]
示例 2:
[图片]
输入:root = [3,0,4,null,2,null,null,1], low = 1, high = 3
输出:[3,2,null,1]

提示:

  • 树中节点数在范围 [1, 10(4)] 内
  • 0 <= Node.val <= 10(4)
  • 树中每个节点的值都是 唯一 的
  • 题目数据保证输入是一棵有效的二叉搜索树
  • 0 <= low <= high <= 10(4)

代码

package __tree/*** Definition for a binary tree node.* type TreeNode struct {*     Val int*     Left *TreeNode*     Right *TreeNode* }*/
func trimBST(root *TreeNode, low int, high int) *TreeNode {if root == nil {return nil}if root.Val < low {r := trimBST(root.Right, low, high)return r}if root.Val > high {l := trimBST(root.Left, low, high)return l}root.Left = trimBST(root.Left, low, high)root.Right = trimBST(root.Right, low, high)return root
}
http://www.yayakq.cn/news/537363/

相关文章:

  • 国外的响应式网站模板办公系统管理软件
  • 沈阳市建设公司网站盐城网站开发代理
  • 山东响应式网站开发网页设计教程电商
  • 营销网站建设文章网站设计开发
  • wordpress 多个站点扁平化 wordpress 主题下载
  • 旅游做攻略网站做程序开发的网站
  • 网站项目ppt怎么做上海到北京机票
  • 合肥建设网站如何做整人网站
  • wpf做网站网站付费推广方式
  • 深圳门户网站建设案例网站的风格设计包括哪些内容
  • 中国营销网站大全主机 wordpress
  • 地方电商门户网站如何建设成功的营销型网站设计特点
  • 网页制作和网站建设app定制开发公司在哪里
  • 网站建设对企业的要求邢台县教育局五库建设网站
  • 企业网站能提供哪些服务wordpress 内容管理系统
  • 网站改成响应式自己做的网站背景怎么设置
  • dede怎么做商城网站做个网站费用多少合适
  • 建设网站需要体现的流程有哪些拜年图片制作
  • 百度推广费用报价单seo排名优化关键词
  • 广东网站建设方案报价你喜欢的公司网站
  • 做便民工具网站怎么样手机网站哪家好
  • 南京专业网站制作公司有哪些百度竞价排名公司
  • 牡丹江城乡建设局网站企业网站建设一站式服务
  • 网站建设公司前台网站做短信验证需要多少钱
  • 织梦网站如何做软件下载网站别人帮做的要注意什么东西
  • 深圳网站建设公司哪家可以建app钢结构招聘网
  • 如何建立公司seo实战培训
  • 织梦网站自动跳转手机网站正版搜索引擎优化
  • 海珠网站建设临沂的网站建设
  • 比较好的网页模板网站网站页面权重