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

力扣labuladong——一刷day72

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

文章目录

  • 前言
  • 一、力扣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.lryc.cn/news/260686.html

相关文章:

  • Leetcode—509.斐波那契数【简单】
  • 山峰个数 - 华为OD统一考试
  • 38、池化的特征不变性
  • 051:vue项目webpack打包后查看各个文件大小
  • JVM调优:参数(学习笔记)
  • MVC Gantt Wrapper:RadiantQ jQuery
  • 2019年第八届数学建模国际赛小美赛C题预测通过拥堵路段所需的时间解题全过程文档及程序
  • 天干地支。
  • RabbitMQ插件详解:rabbitmq_web_stomp【RabbitMQ 六】
  • 路由器的转换原理--ENSP实验
  • 世界5G大会
  • FFmpeg-基础组件-AVFrame
  • Vue 组件传参 emit
  • Makefile基本指令
  • 爬取图片python代码
  • Android通过listview实现输入框自定义提示栏(代替AutoCompleteTextView自动完成文本框)
  • DA-AD试验
  • Leetcode—896.单调数列【简单】
  • vue2生命周期
  • 【Flink on k8s】 -- flink kubernetes operator 1.7.0 发布
  • Java网络编程,对使用UDP实现TCP(一)三次握手实现的补充
  • Redis 的常见使用场景
  • VRRP协议详解
  • Linux 常用命令----mktemp 命令
  • 基于ssm服装定制系统源码和论文
  • 【AI】如何准备mac开发vue项目的环境
  • BERT大模型:英语NLP的里程碑
  • JVM的类的生命周期
  • uni-app获取response header响应头(h5/app/小程序三端)
  • 本地部署语音转文字(whisper,SpeechRecognition)