首页 > 其他分享 >day23

day23

时间:2023-02-06 23:33:20浏览次数:38  
标签:TreeNode nums int day23 return root left

1、669 修剪二叉搜索树

class Solution {
    public TreeNode trimBST(TreeNode root, int low, int high) {
        if(root == null){
            return null;
        }

        if(root.val < low){
            return trimBST(root.right, low, high);
        }
        if(root.val > high){
            return trimBST(root.left, low, high);
        }
        
        root.left = trimBST(root.left, low, high);
        root.right = trimBST(root.right, low, high);
        return root;
    }
}

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

1、代码实现1

class Solution {
    public TreeNode sortedArrayToBST(int[] nums) {
        if(nums.length == 0){
            return null;
        }
        int midIndex =  nums.length / 2 ;
        TreeNode root = new TreeNode(nums[midIndex]);

        int[] leftNums = Arrays.copyOfRange(nums,0,midIndex);
        int[] rightNums = Arrays.copyOfRange(nums,midIndex+1, nums.length);
        
        root.left = sortedArrayToBST(leftNums);
        root.right = sortedArrayToBST(rightNums);
        
        return root;
    }
}

2、代码实现2

class Solution {
    public TreeNode sortedArrayToBST(int[] nums) {
        return traversal(nums, 0, nums.length);
    }

    public TreeNode traversal(int[] nums, int left, int right){//左闭右开
        if(left >= right){
            return null;
        }
        int mid = left + (right-left)/2;
        TreeNode root = new TreeNode(nums[mid]);
        root.left = traversal(nums, left, mid);
        root.right = traversal(nums, mid+1, right);
        return root;
    }
}

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

class Solution {
    int preVal = 0;

    public TreeNode convertBST(TreeNode root) {
        traversal(root);
        return root;
    }

    public void traversal(TreeNode cur) {
        if(cur==null) {
            return;
        }
        //右
        traversal(cur.right);
        //中
        cur.val += preVal;
        preVal = cur.val;
        //左
        traversal(cur.left);
    }
}

标签:TreeNode,nums,int,day23,return,root,left
From: https://www.cnblogs.com/hzj-bolg/p/17097037.html

相关文章

  • 剑指offer——Day23 数学(简单)
    Day232023.2.5数学(简单)剑指Offer39.数组中出现次数超过一半的数字自己实现因为考虑到这个数字起码有数组长度的一般那么多,那么如果把所有该数字放在一起,它势必会占......
  • day23-网络编程01
    1.网络编程入门1.1网络编程概述【理解】计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网......
  • 代码随想录day23 669. 修剪二叉搜索树 108. 将有序数组转换为二叉搜索树 538. 把二叉
     classSolution{public:TreeNode*trimBST(TreeNode*root,intlow,inthigh){if(root==nullptr)returnnullptr;if(root->val<l......
  • 结构体(day23)
    实例structstu//声明一种结构体类型(标签为stu){charname[20];//创建该类型下的对象(成员变量)chartel[20];charsex[10];intage;};intmain(){structstuzhangs......
  • 超全面的JavaWeb笔记day23<AJAX>
    AJAXAJAX概述1什么是AJAXAJAX(AsynchronousJavascriptAndXML)翻译成中文就是“异步Javascript和XML”。即使用Javascript语言与服务器进行异步交互,传输的数据为XML(当然,传......
  • 代码随想录算法训练营Day23|669. 修剪二叉搜索树、108. 将有序数组转换为二叉搜索树、
    代码随想录算法训练营Day23|669.修剪二叉搜索树、108.将有序数组转换为二叉搜索树、538.把二叉搜索树转换为累加树669.修剪二叉搜索树与删除节点类似,但不需要讨论左/......
  • Day23.2.递归
    Day23.2.递归1.定义自己调用自己递归结构包括:递归头:什么时候不调用自身方法。如果没有头,将陷入死循环。递归体:什么时候需要调用自身方法2.例题 publicclass......
  • day23 --> (redis)
    Redis: 1.概念:redis是一款高性能的NOSQL系列的非关系型数据库2.下载安装:1、官网:https://redis.io2、中文网:http://www.redis.net.cn/3.解压可以直接使用:redis.wi......
  • Day23:instanceof 和类型转换
    多态中的转型转型当父类的不能调用子类方法时,我们可以将父类转换成子类,然后就可以调用子类的方法。转型分为两种:向上转型:父类引用指向子类对象;向下转型:父类引用转为子......
  • day23
    【0020.有效的括号】classSolution{public:boolisValid(strings){stack<char>st1;for(inti=0;i<s.size();i++){if......