剑指Offer || 052.递增顺序搜索树

news/2024/7/20 22:17:51 标签: 深度优先, 算法

题目

给你一棵二叉搜索树,请 按中序遍历 将其重新排列为一棵递增顺序搜索树,使树中最左边的节点成为树的根节点,并且每个节点没有左子节点,只有一个右子节点。

示例 1:

输入:root = [5,3,6,2,4,null,8,1,null,null,null,7,9]
输出:[1,null,2,null,3,null,4,null,5,null,6,null,7,null,8,null,9]

示例 2:

输入:root = [5,1,7]
输出:[1,null,5,null,7]

提示:

  • 树中节点数的取值范围是 [1, 100]
  • 0 <= Node.val <= 1000

注意:本题与主站 897 题相同: 力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台

LCR 052. 递增顺序搜索树 - 力扣(LeetCode)

题解

思路:中序遍历,对TreeNode的list.add(),要new一个node来操作,如果直接把原node加进去的话,会有很多问题,比如说有环之类的

代码:

class Solution {
	List<TreeNode> tmp=new ArrayList<TreeNode>();
    public TreeNode increasingBST(TreeNode root) {
    	if(root==null) return null;
    	dfs(root);
    	for(int i=0;i<tmp.size()-1;i++) 
    		tmp.get(i).right=tmp.get(i+1);
    	return tmp.get(0);
    }
    
    public void dfs(TreeNode t) {
    	if(t.left!=null) 
    		dfs(t.left);
    	TreeNode node=new TreeNode();
    	node.val=t.val;
    	tmp.add(node);
    	if(t.right!=null) 
    		dfs(t.right);
    }
}


http://www.niftyadmin.cn/n/5112160.html

相关文章

在Ubuntu上通过Docker部署OpenVPN服务器

在这篇博客中&#xff0c;我们将探讨如何在Ubuntu服务器上通过Docker容器化技术来部署OpenVPN服务器。下面是逐步进行的指南&#xff0c;适用于初学者和中级用户。 前提条件: 一个运行Ubuntu的服务器Docker已安装在服务器上 步骤1: 安装Docker 首先&#xff0c;确保你的Ubu…

B/S医院手术麻醉临床系统:围术期的认识

手术是治疗很多疾病最有效而且绕不开的措施。而从医生和患者确定了要进行手术治疗的时候&#xff0c;医院相关人员就会开始围着患者团团转&#xff0c;在术前、术中和术后&#xff0c;医生会告诉患者很多事情&#xff0c;患者也会了解很多就诊相关知识。 一、围术期的认识 围术…

2023 年和 2024 年 10 个最佳加密货币趋势

1.熊市低迷 加密货币市场已进入持续数月的长期看跌阶段。尽管 2023 年初出现了一些看涨走势&#xff0c;但大多数领先的加密货币随后都出现了看跌低迷&#xff0c;导致其市值大幅下跌。 此外&#xff0c;持续的熊市可归因于一系列因素&#xff0c;包括宏观经济不确定性、利率…

靶机 DC_1

DC_1 信息搜集 存活检测 详细扫描 网页目录扫描 网页信息搜集 cms 为 Drupal 漏洞利用 使用 msf 搜索 drupal 的漏洞 启动 msfconsole搜索 search drupal尝试编号为 0 的漏洞 失败 利用编号为 1 的漏洞 use 1查看需要配置的选项 show options设置目标 ip set rhost 10…

torch的gpu上做fft,其中dim参数含义解释

在torch.fft.fftn函数中&#xff1a; dim(0,)表示只在第一个维度&#xff08;即行&#xff09;上进行傅立叶变换。 dim(-1,)或者dim(1,)表示只在最后一个维度&#xff08;即列&#xff09;上进行傅立叶变换。 dim(-2, -1)或者dim(0, 1)表示在所有维度&#xff08;即行和列&…

解决因d3dx9_30.dll丢失程序无法运行,电脑缺失d3dx9_30.dll报错解决方案

我们的生活和工作都离不开电脑。然而&#xff0c;电脑作为一种复杂的工具&#xff0c;也会出现各种各样的问题。其中&#xff0c;丢失d3dx9_30.dll文件是一个常见的问题。d3dx9_30.dll是DirectX的动态链接库文件&#xff0c;如果丢失或损坏&#xff0c;可能会导致许多软件和游戏…

sql语句数据库查询:如果当前元素已经使用过,下拉框不显示该元素该如何查询?

写宿舍管理系统&#xff0c;做到宿管和楼栋关系时&#xff0c;新增一个宿管&#xff0c;一个宿管管理一栋楼&#xff0c;如果当前楼栋已选择&#xff0c;那么就不能再选&#xff0c;如图所示&#xff1a; 最开始使用的是&#xff1a; SELECT DISTINCT b.building_num,b.TYPE,b…