力扣labuladong——一刷day71

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、力扣109. 有序链表转换二叉搜索树
  • 二、力扣1382. 将二叉搜索树变平衡


前言


二叉树的递归分为「遍历」和「分解问题」两种思维模式,这道题需要用到「分解问题」的思维模式。

一、力扣109. 有序链表转换二叉搜索树

/*** Definition for singly-linked list.* public class ListNode {*     int val;*     ListNode next;*     ListNode() {}*     ListNode(int val) { this.val = val; }*     ListNode(int val, ListNode next) { this.val = val; this.next = next; }* }*/
/*** Definition for a binary tree node.* public class 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 sortedListToBST(ListNode head) {List<Integer> list = new ArrayList<>();ListNode p = head;while(p != null){list.add(p.val);p = p.next;}return fun(list,0,list.size()-1);}public TreeNode fun(List<Integer> list, int low,int high){if(low > high){return null;}int mid = (low+high)/2;TreeNode cur = new TreeNode(list.get(mid));cur.left = fun(list,low,mid-1);cur.right = fun(list,mid+1,high);return cur;}
}

二、力扣1382. 将二叉搜索树变平衡

/*** Definition for a binary tree node.* public class 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 {List<Integer> list = new ArrayList<>();public TreeNode balanceBST(TreeNode root) {traverse(root);return fun(0,list.size()-1);}public TreeNode fun(int low, int high){if(low > high){return null;}int mid = (low+high)/2;TreeNode cur = new TreeNode(list.get(mid));cur.left = fun(low,mid-1);cur.right = fun(mid+1,high);return cur;}public void traverse(TreeNode root){if(root == null){return;}traverse(root.left);list.add(root.val);traverse(root.right);}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/218150.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Unity学习笔记】光照简介

本节主要是简单介绍一些常见的光照组件和渲染设置。 文章目录 灯光类型平行光Directional Light点光源Point Light聚光灯Spot Light面积光 Area Light 阴影设置全局光照明光照模式直接光照与间接光照Mixed Lighting 光照探针Light Probe Group光照探针组 反射探针 灯光类型 在…

工具应用:Robot Framework->对协议级接口进行测试

实验简介 本节实验主要为大家讲解如何利用Robot Framework结合常用的关键字完成对Agileone系统中的“需求提案”模块进行协议级接口的自动化测试脚本开发。 实验目的 &#xff08;1&#xff09; 掌握RF的Requests库的常用关键字及用法。 &#xff08;2&#xff09; 能够熟练…

一文速览字节最新分布式操作系统KubeWharf

一文速览字节最新分布式操作系统KubeWharf KubeWharf 是字节跳动基础架构团队在对 Kubernetes 进行了大规模应用和不断优化增强之后的技术结晶。 这是一套以 Kubernetes 为基础构建的分布式操作系统&#xff0c;由一组云原生组件构成&#xff0c;专注于提高系统的可扩展性、功…

PM入职一周

目前入职的岗位属于软件的项目经理&#xff0c;只对软件负责&#xff0c;不是传统意义上的项目经理&#xff0c;但是对接的东西一点也不少。 现阶段&#xff0c;主要的流程如下 &#xff08;1&#xff09;开发计划&#xff0c;此项开发计划又包括 功能整张表&#xff0c;其实…

vue3 uniapp定时器 每天定时触发任务

最近在uniapp中遇到了一个定时器的功能&#xff0c;需要每天定时00:00:00触发接口请求&#xff0c;用到了timeOutTimer和intervalTimer&#xff0c;结合实例来讲一下实现步骤&#xff1a; 首先了解一下这两个方法的含义 setTimeout&#xff1a;用于在一段时间后执行一次函数。…

怪兽吃糖果

欢迎来到程序小院 怪兽吃糖果 玩法&#xff1a;左右飞出的糖果&#xff0c;点击鼠标糖果即为怪兽吃掉&#xff0c;不同的糖果不同的分数奖励&#xff0c; 吃不掉的糖果会扣除一次生命&#xff0c;共三次生命值&#xff0c;点击炸弹游戏结束&#xff0c;快去吃糖果吧^^开始游戏…

基于ssm大学生创新创业平台项目管理子系统设计与实现论文

摘 要 互联网发展至今&#xff0c;无论是其理论还是技术都已经成熟&#xff0c;而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播&#xff0c;搭配信息管理工具可以很好地为人们提供服务。针对大学生创新创业项目信息管理混乱&#xff0c;出错率高&#xff0c;信…

2023第二届全国大学生数据分析大赛A完整原创论文(含摘要+问题分析+模型建立与求解+python代码)

大家好&#xff0c;从昨天肝到现在&#xff0c;终于完成了2023第二届全国大学生数据分析大赛A题某电商平台用户行为分析与挖掘的完整论文啦。 给大家看一下目录吧&#xff1a; 目录 摘 要&#xff1a; 10 一、问题重述 12 二&#xff0e;问题分析 13 2.1问题一 13 2.2问…

Redis持久化AOF详解

基础面试题 什么是AOF AOF&#xff08;Append-Only File&#xff09;用于将Redis服务器收到的写操作追加到日志文件&#xff0c;通过该机制可以保证服务器重启后依然可以依靠日志文件恢复数据。 它的工作过程大抵分为以下几步&#xff1a; 收到客户端的写入命令(例如SET、DE…

安全算法(一):安全技术、加密的基础知识、哈希函数的简单介绍

安全算法&#xff08;一&#xff09;&#xff1a;安全技术、加密的基础知识、哈希函数的简单介绍 通过互联网交换数据时&#xff0c;数据要经过各种各样的网络和设备才能传到对方那里。数据在传输过程中有可能会经过某些恶意用户的设备&#xff0c;从而导致内容被盗取。 因此…

工具:Jupyter

Jupyter是一个开源的交互式计算环境&#xff0c;由Fernando Perez和Brian Granger于2014年创立。它提供了一种方便的方式来展示、共享和探索数据&#xff0c;并且可以与多种编程语言和数据格式进行交互。Jupyter的历史可以追溯到2001年&#xff0c;当时Fernando Perez正在使用P…

外汇天眼:新手做外汇交易需要注意什么?

外汇投资是一个充满机会和挑战的市场&#xff0c;对于新手来说&#xff0c;了解一些必要的知识和技巧是非常重要的。 以下是一些新手投资外汇必须注意以下几点&#xff1a; 1.了解外汇市场的基本知识 在进入外汇市场之前&#xff0c;了解一些基本知识是必要的。 这包括外汇市…

亚马逊鲲鹏系统:防关联技术守护您的账户安全

亚马逊买家账号注册是一项相当简便的操作&#xff0c;但当涉及到批量注册时&#xff0c;我们就需要更加注意防关联的问题。对于那些对此领域不够熟悉的朋友们&#xff0c;可以使用亚马逊鲲鹏系统&#xff0c;这款系统能够为我们提供一站式的解决方案。该系统不仅支持买家账号的…

从零开始学习 Python 网络爬虫:使用 Beautiful Soup 解析网页

在这篇文章中&#xff0c;我们将介绍如何使用 Python 编写一个简单的网络爬虫&#xff0c;以获取并解析网页内容。我们将使用 Beautiful Soup 库&#xff0c;它是一个非常强大的库&#xff0c;用于解析和操作 HTML 和 XML 文档。让我们开始吧&#xff01; 一. 安装 Beautiful …

mysql,树形结构表中,查询所有末节点数据(叶子结点)

需求&#xff1a;在一个可以存放多级目录的表中&#xff0c;查询出某个课程目录下所有末节点&#xff08;因为只有末节点可以挂载资源&#xff09; 例如下图&#xff1a; 其中 1.11.2.12.1 都是末节点&#xff0c;因为他们已经没有下一级了 catalog表中重要字段有&#xff1a;c…

【论文解读】System 2 Attention提高大语言模型客观性和事实性

一、简要介绍 本文简要介绍了论文“System 2 Attention (is something you might need too) ”的相关工作。基于transformer的大语言模型&#xff08;LLM&#xff09;中的软注意很容易将上下文中的不相关信息合并到其潜在的表征中&#xff0c;这将对下一token的生成产生不利影响…

【docker四】使用Docker-compose一键部署Wordpress平台

目录 一、YAML 文件格式及编写注意事项&#xff08;重要&#xff09; 1、yaml文件使用时注意事项&#xff1a; 2、yaml文件的基本数据结构&#xff1a; 2.1、声明变量&#xff08;标量。是单个的不可再分的值&#xff0c;类型&#xff1a;字符串&#xff0c;整数&#xff0c…

SpringIOC之DependsOn

博主介绍&#xff1a;✌全网粉丝5W&#xff0c;全栈开发工程师&#xff0c;从事多年软件开发&#xff0c;在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战&#xff0c;博主也曾写过优秀论文&#xff0c;查重率极低&#xff0c;在这方面有丰富的经验…

scikit_feature_selection实战

在进行李宏毅HW01作业时&#xff0c;需进行特征选择。 选用scikit-learn 中的feature_selection. 参考&#xff1a; selectkbest feature selection 实战注意点&#xff1a; chi 2 适用于非零的参数&#xff0c; 如果报错&#xff0c;换用 f_classif model SelectKBest(…

Unity 修改游戏对象的旋转角度Rotation的方法

在Unity中要修改游戏对象中的旋转角度&#xff0c;即下图中的Rotation: 有三个方法&#xff1a; 1、 使用欧拉角&#xff08;Euler Angles&#xff09;&#xff1a;欧拉角是一组表示旋转的三个角度值&#xff08;绕X轴的旋转、绕Y轴的旋转和绕Z轴的旋转&#xff09;。 transf…