数据结构-二分搜索树转双向链表(Java)

2023-11-06

二分搜索树转双向链表(牛客JZ36)
题目
在这里插入图片描述在这里插入图片描述
思路
1,对二分搜索树进行中序遍历
2,将二分搜索树左节点和根节点相连接,右节点和根节点相连接
遍历左子树,连接(左子树尾部不为空)
leftTail.right = pRootOfTree;
pRootOfTree.left = leftTail;
遍历右子树,连接
right.left = pRootOfTree;
pRootOfTree.right = right;

代码实现

 public TreeNode Convert(TreeNode pRootOfTree) {
        if(pRootOfTree == null ||(pRootOfTree.left == null && pRootOfTree.right == null)){
            return pRootOfTree;
        }
        TreeNode left = Convert(pRootOfTree.left);
        TreeNode leftTail = left;
        while(leftTail != null && leftTail.right != null){
            leftTail = leftTail.right;
        }
        //将二分搜索树左节点和根节点相连
        //左子树尾部不为空
        if(leftTail != null) {
            leftTail.right = pRootOfTree;
            pRootOfTree.left = leftTail;
        }
        TreeNode right = Convert(pRootOfTree.right);
        //将二分搜索树右节点和根节点相连
         if(right != null){
             right.left = pRootOfTree;
             pRootOfTree.right = right;
         }
        return left == null?pRootOfTree:left;
    }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

数据结构-二分搜索树转双向链表(Java) 的相关文章

  • HTML-Entity 转义以防止 XSS

    我有一些用户输入 在我的代码中 我确保对以下符号进行转义 gt amp lt gt lt gt gt gt OWASP https www owasp org index php XSS 28Cross Site Scripting 29
  • Maven 管理的 Java EE 应用程序中 JBoss 提供的库

    这对我来说实际上不太可能 但网上似乎没有关于将 JBoss 提供的依赖项导入 Maven 管理的 Java EE 应用程序以在其中部署的直接答案 据我所知 有两件事与这个问题有关 那就是jboss as client外部 就 JVM 而言
  • 编写潜在并发问题的证明

    我正在阅读 Java 并发实践 并尝试编写一段代码来表明第 3 5 1 章中作为示例提供的类确实会引入问题 public class Holder public int n public Holder int n this n n publ
  • Spring Boot“没有可用消息”错误(状态 = 404),

    我正在使用带有嵌入式 Tomcat 的 Spring Boot 当它启动时 它会登录到控制台 s w s m m a RequestMappingHandlerMapping 将 home 映射到公共 java lang String co
  • 使用 Morphia 配置 Spring Boot?

    我不想利用 Spring DATA MongoDB 支持 我想利用名为 Morphia 的 MongoDB ORM https github com mongodb morphia https github com mongodb morp
  • 二维数组中的寻路

    假设我有这个二维数组地图 0 0 0 0 7 1 1 1 1 1 1 1 1 0 7 7 7 7 1 1 1 24 1 1 1 1 0 7 24 24 24 24 24 24 24 1 1 3 1 0 7 23 23 23 23 23 23
  • 无法在 Spring boot 中使用 findOne() 方法

    我的项目是关于用户管理器网络的 我是 Spring 和 Java 的新手 这是我的代码 在 UserController 中 RequestMapping value users name method RequestMethod GET
  • 正则表达式的替代(流畅?)界面设计

    我刚刚看到了一个巨大的 Java 正则表达式 这让我对正则表达式的一般可维护性进行了一些思考 我相信大多数人 除了一些糟糕的 Perl 贩子 都会同意正则表达式很难维护 我正在考虑如何解决这种情况 到目前为止 我最有希望的想法是使用流畅的界
  • Postgres UUID 和休眠

    我有一个具有 UUID 列的实体 它不是主键 我正在使用 Postgres 和 hibernate 我对此专栏的类型是https www postgresql org docs 9 1 static datatype uuid html h
  • Java 中的逻辑回归

    我们需要用 Java 进行逻辑回归 我们在 Python 中使用了这段代码http blog smellthedata com 2009 06 python logistic regression with l2 html http blo
  • java.util.Objects 与Optional 哪个更可取?

    The java util Objects http download java net java jdk9 docs api java util Objects html类通过许多新方法进行了扩展 对象 requireNonNullEls
  • 如何为我的数独游戏制作 GUI? (摇摆)

    到目前为止 我已经编写了生成随机 9x9 数独网格的代码 我是Java的初学者 所以我有一些关于如何做UI的问题 显示数字的最佳方式是什么 我尝试创建 81 个 JTextFields 这非常乏味 而且我确信有一种有效的方法可以做到这一点
  • 如何在 groovy 中将输出重定向到 stderr?

    我正在寻找一种将 groovy 脚本中的输出重定向到 stderr 的方法 catch Exception e println Want this to go to stderr 就在我的脑海中 你不能做一些自我接线吗 def printE
  • 如何获取嵌套类型内部结构的所有类型?

    我有一个函数如下 public void park List
  • jstack 是否停止在较新的 JDK8 版本上工作?

    我惊讶地发现 不知何故 最近 jstack 停止了在较新的 JDK 8 上的工作 我不确定这发生在哪个版本 但我确实得到 36649 Unable to open socket file target process not respond
  • Java 统一编码

    A Java char is 2 bytes http java sun com docs books tutorial java nutsandbolts datatypes html 最大大小为 65 536 但有95 221 http
  • 如何使用 itext 在 pdf 页脚上添加页码,它应该照顾其宽度?

    我的代码示例如下 Override public void onEndPage PdfWriter writer Document document addFooter writer private void addFooter PdfWr
  • ByteBuddy 变基、合成类型和 OSGi

    我为 byte buddy 开发了以下拦截器 public class SecurityInterceptor RuntimeType public static Object intercept SuperCall Callable su
  • 在同一项目上使用 Eclipse 和 NetBeans

    Eclipse 是一个非常棒的编辑器 我更喜欢使用它 但是缺少 Eclipse 的 GUI 设计工具 另一方面 NetBeans 非常适合 GUI 设计 在同一项目中使用 NetBeans 进行 GUI 设计和 Eclipse 进行其他所有
  • 我可以在方法体内使用注释吗?

    允许 Java 注释的语义将它们放置在某处在函数体内 例如注释特定的函数调用 语句或表达式 例如 class MyClass void theFunc Thing thing String s null Catching NullPoint

随机推荐

  • SDWebImage 笔记

    SDWebImage托管在github上 https github com rs SDWebImage 这个类库提供一个UIImageView类别以支持加载来自网络的远程图片 具有缓存管理 异步下载 同一个URL下载次数控制和优化等特征 使
  • A股上市有什么条件?A股上市条件有哪些?

    A股的上市条件有这几点 一 资格要求 1 发行人应当是依法设立且合法存续的股份有限公司 经国务院批准 有限责任公司在依法变更为股份有限公司时 可以采取募集设立方式公开发行股票 2 发行人自股份有限公司成立后 持续经营时间应当在3年以上 但经
  • 【Web架构】使用 JSON API 的好处

    在 API 工艺的世界里 没有比设计更受热议的领域了 从 REST gRPC 到 GraphQL 有许多方法可以设计和标准化 Web API 交互 今天 我们将注意力转向另一种方法 JSON API JSONAPI org 上详细介绍的用于
  • java字符数组初始化_Java 字符串(一)字符串初始化

    一 String类概述 1 概述 java lang String类代表字符串 Java程序中所有的字符串文字 例如 abc 都可以被看作是实现此类的实例 String 是引用数据类型 不是基本数据类型 类String 中包括用于检查各个字
  • CVE-2021-30116: Kaseya VSA 远程代码执行漏洞通告

    报告编号 B6 2021 070601 报告来源 360CERT 报告作者 360CERT 更新日期 2021 07 06 0x01 漏洞简述 2021年07月06日 360CERT监测发现Kaseya发布了VSA管理软件的风险通告 漏洞等
  • 春秋云镜靶场挑战——Tsclient

    目标IP 39 98 73 212 网络拓扑 入口机器 1 使用namp对目标IP进行扫描 发现目标开放了1433端口 MSSQL服务 3389端口 RDP服务 2 可以先爆破MSSQL服务 如下可以看出成爆破出密码 3 使用MDUT工具连
  • Leetcode168. Excel表列名称

    力扣 LeetCode 官网 全球极客挚爱的技术成长平台 题解 力扣 LeetCode 官网 全球极客挚爱的技术成长平台 代码如下 class Solution public String convertToTitle int column
  • 【华为机试题解】奥特曼打怪兽

    大概题意 在一个N N的正方形区域 每个小格可能有三种状态 值为0 正常可通过 值为1 奥特曼可通过 同时还可以消灭怪兽 消灭后值变为0 消灭怪兽数量 1 值为 1 有大石头 奥特曼无法通过 奥特曼需要先从上往下走 这个过程只能向下或者向右
  • 正则表达式替换多个相同的连续字符串为一个字符串

    要替换的字符串 http localhost 9010 asqmasqm manage user 需要替换多个连续asqm为一个asqm 正则表达式 asqm 1 g 1 替换结果为 http localhost 9010 asqm man
  • Fedora 17 安装 ACE6.1

    下载 下载地址 http download dre vanderbilt edu 下载ACE 6 1 0 tar bz2 这个软件包只包含ACE 不包含TAO等附加的东西 另外bz2压缩格式的源码包比较小 只有7 55M 解压 mkdir
  • 若依 vue webpack 打包 tomcat部署 刷新404 问题处理思路

    1 参考若依官网中的添加WEB INF方法 若依文档说明 2 检查 vue config js中的生产环境配置 检查publicPath中的路由地址是否为tomcat中的前端路径 例如tomcat 的访问路径是localhost 8080
  • wpsppt设置页码和总页数_wps的ppt页码怎么设置

    wps的ppt页码怎么设置 PPT中如何设置页码那 你知道吗 下面是小编为大家推荐wps的ppt页码设置的内容 希望能够帮助到你 欢迎大家的阅读参考 设置步骤 新建一个PPT 选择 离子 模板 然后猛敲回车 插入多张PPT页面 点击 插入
  • SpringBoot 添加对JSP的支持(附常见坑点)

    序言 SpringBoot默认不支持JSP 如果想在项目中使用 需要进行相关初始化工作 为了方便大家更好的开发 本案例可直接作为JSP开发的脚手架工程 SpringBoot War JSP 常见问题 1 修改JSP需重启才能生效 在生产环境
  • Pycharm 使用pip安装包时候报错 no such option --build-dir

    Pycharm 使用pip安装包时候报错 no such option build dir 原因 pip版本过高 解决办法 对pip降级 等待pycharm更新即可 打开命令行 找到python所在的位置 输入 pip install pi
  • Qt中调用C#制作的com组件

    作者 billy 版权声明 著作权归作者所有 商业转载请联系作者获得授权 非商业转载请注明出处 前言 这里记录一下在 Qt 64位程序中调用 C 制作的 com 组件的流程 方便后期自己回顾 1 了解 TLB 格式 拿到的依赖库最重要的有一
  • c++四舍五入函数,向上取整,向下取整函数

    对含有小数点的数进行四舍五入是比较普遍的一种需求 在C 中也有类似的取整函数 在C 的头文件中有floor 和ceil 函数 在STL中还有round 函数 向下取整 floor 向上取整ceil 四舍五入取整round
  • 计算机需要解决的基本问题是,【基本计算机问题】计算机不是遇到非常严重的问题,请看这里解答...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 5 启动计算机时出现 Invalid Boot ini 无效 Boot ini 或 Windows could not start Windows 无法启动 错误信息 Invalid Boot
  • 【C++】可变参数模板

    2023年9月9日 周六下午 这个还是挺难学的 我学了好几天 在这里我会举大量的示例程序 这样可以有一个更好的理解 不定期更新 目录 推荐文章 示例程序一 拼接字符串 示例程序二 求整数和 示例程序三 输出一串整数 推荐文章 这里有一些不错
  • [蓝桥杯][2017年第八届真题]分巧克力 二分查找 c语言

    题目描述 儿童节那天有K位小朋友到小明家做客 小明拿出了珍藏的巧克力招待小朋友们 小明一共有N块巧克力 其中第i块是Hi x Wi的方格组成的长方形 为了公平起见 小明需要从这 N 块巧克力中切出K块巧克力分给小朋友们 切出的巧克力需要满足
  • 数据结构-二分搜索树转双向链表(Java)

    二分搜索树转双向链表 牛客JZ36 题目 思路 1 对二分搜索树进行中序遍历 2 将二分搜索树左节点和根节点相连接 右节点和根节点相连接 遍历左子树 连接 左子树尾部不为空 leftTail right pRootOfTree pRootO