首页 > 编程语言 >#yyds干货盘点# LeetCode程序员面试金典:BiNode

#yyds干货盘点# LeetCode程序员面试金典:BiNode

时间:2023-03-19 22:31:48浏览次数:45  
标签:yyds right TreeNode BiNode 金典 perv null root 节点

题目:

二叉树数据结构TreeNode可用来表示单向链表(其中left置空,right为下一个链表节点)。实现一个方法,把二叉搜索树转换为单向链表,要求依然符合二叉搜索树的性质,转换操作应是原址的,也就是在原始的二叉搜索树上直接修改。

返回转换后的单向链表的头节点。

注意:本题相对原题稍作改动

 

示例:

输入: [4,2,5,1,3,null,6,0]

输出: [0,null,1,null,2,null,3,null,4,null,5,null,6]

代码实现:

/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
class Solution {
TreeNode head = new TreeNode(-1); // 为了返回单向链表的头节点而多设的一个节点
TreeNode perv = null; // 指向当前节点的前一个节点
public TreeNode convertBiNode(TreeNode root) {
helper(root);
return head.right;
}

public void helper(TreeNode root) {
if (root == null) { return;}
helper(root.left);
if (perv == null) { // 第一个节点
perv = root; // 记录第一个节点
head.right = root; // 记录它,它将作为单链表的表头
} else { // 第一个节点之后的节点
perv.right = root; // 前一个节点的右指针指向当前节点
perv = root; // 更新perv指向
}
root.left = null; // 当前节点的左指针设为null
helper(root.right);
}
}

标签:yyds,right,TreeNode,BiNode,金典,perv,null,root,节点
From: https://blog.51cto.com/u_13321676/6131381

相关文章

  • # yyds干货盘点 # Pycharm和Python到底啥关系?
    大家好,我是皮皮。一、前言前几天在Python白银交流群【厚德载物】问了一个​​Python​​基础的问题,这里拿出来给大家分享下。初学者遇到这种的,可能会有点困惑。二、实现过程......
  • #yyds干货盘点#怎样快速地迁移 MySQL 中的数据?
    我们通常会遇到这样的一个场景,就是需要将一个数据库的数据迁移到一个性能更加强悍的数据库服务器上。这个时候需要我们做的就是快速迁移数据库的数据。那么,如何才能快速地迁......
  • #yyds干货盘点#工作中常用的git命令
    Git配置了解版本控制什么是版本控制?我真的需要吗?版本控制是一种记录若干文件内容变化,以便将来查阅特定版本修订情况的系统。什么是分布式版本控制系统分布式版本控制系统(......
  • #yyds干货盘点#JSON Web Tokens 是如何工作的
    在用户权限校验的过程中,一个用户如果使用授权信息成功登录后,一个JSONWebToken将会返回给用户端。因为返回的令牌包含有授权信息,应用程序应小心保存这些授权信息,以避免不......
  • #yyds干货盘点#JSON Web Tokens 是如何工作的
    在用户权限校验的过程中,一个用户如果使用授权信息成功登录后,一个JSONWebToken将会返回给用户端。因为返回的令牌包含有授权信息,应用程序应小心保存这些授权信息,以避免不......
  • #yyds干货盘点#对于babel的一些理解
    Babel是一个JavaScript编译器Babel是一个工具链,主要用于将采用ECMAScript2015+语法编写的代码转换为向后兼容的JavaScript语法,以便能够运行在当前和旧版本的浏览器......
  • #yyds干货盘点 【React工作记录二十四】ant design form赋值问题
     目录​​前言​​​​导语​​​​解决思路​​​​总结​​前言我是歌谣我有个兄弟巅峰的时候排名c站总榜19叫前端小歌谣曾经我花了三年的时间创作了他现在我要用五......
  • #yyds干货盘点#【愚公系列】2023年03月 .NET CORE工具案例-使用MailKit使用SMTP协议进
    (文章目录)前言1.MailKit简介MailKit是最流行且最强大的.NET邮件处理框架之一,下面为大家简单介绍MailKit的使用方式(IMAP为例)2.MailKit功能安全SASL身份验证支......
  • 数据建模——NULL#yyds干货盘点#
    Hive含义在Hive中,NULL代表缺失或未知的值。如果表中某个字段为NULL,则意味着该字段没有被填充或未知。可以使用ISNULL(field)或ISNOTNULL(field)来检查一个字段的值是......
  • #yyds干货盘点#iframe跨域的几种常用方法
    在开发日常中,会遇到使用iframe嵌套其他页面,想要与嵌套页面进行交互,常常会涉及到跨域问题,何为跨域?这涉及到同源策略,即协议、端口、域名相同则为同源违反了同源策略就会出现跨......