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

算法刷题Day8:BM30 二叉搜索树与双向链表

题目

牛客网题目传送门
在这里插入图片描述

思路

对二叉搜索树进行中序遍历,结果就是按序数组。因此想办法把前面遍历过的节点给记下来,记作pre。当遍历到某个节点node的时候,令前驱指向pre,然后让pre的后驱指向node

代码

class TreeNode:
    def __init__(self, x):
        self.val = x
        self.left = None  # 前驱
        self.right = None  # 后驱
class Solution:
    def __init__(self):
        self.pre = TreeNode(-1)
        self.first = TreeNode(-1)

    def Traverse(self, root):
        if root == None:
            return
        self.Traverse(root.left)
        root.left = self.pre
        self.pre.right = root
        self.pre = root
        self.Traverse(root.right)
        return

    def Convert(self, pRootOfTree):
        if pRootOfTree == None:
            return pRootOfTree
        # 找到最左边的节点
        def findLeft(root):
            node = root
            while node.left is not None:
                node = node.left
            return node
        self.first = findLeft(pRootOfTree)
        # 中序遍历
        self.Traverse(pRootOfTree)
        self.first.left = None //把头结点的前驱置为None
        return self.first

芜湖,明天要去玩了,顺便把明天的卡也做了。经前综合征在我26岁的时候,爆发到了极值。绝了。怎么感觉除了经期,其他时期也稍微就正常一点,经常忘事,和导师吐槽了一下自己的记忆力,然后导师安慰我说:这是正常~ 本科期间丢了7张校卡,总是忘记哈哈哈,短期记忆是真的不行。(谢谢导师,导师对我真的好包容)。当然,记忆力这是可以锻炼的,或者拿本本记下来。off course,当忘记事情的时候,也不要过于责怪自己。


http://www.kler.cn/a/421299.html

相关文章:

  • Narya.ai正在寻找iOS工程师!#Mixlab内推
  • GitLab使用中遇到的一些问题-记录
  • 十、软件设计架构-微服务-服务调用Dubbo
  • 经典C语言代码——part 19(链表)
  • 【力扣】3274. 检查棋盘方格颜色是否相同
  • 掌握 Spring Boot 中的缓存:技术和最佳实践
  • Adam 和 AdamW 优化器详解及其训练显存需求分析:以LLaMA-2 7B为例(中英双语)
  • 在Windows下进行PyTorch深度学习环境配置(单纯安装版)
  • Ps:存储 Adobe PDF - 预设
  • 工作-k8s问题处理篇
  • 【WPS】【EXCEL】将单元格中字符按照分隔符拆分按行填充到其他单元格
  • IntelliJ+SpringBoot项目实战(23)--整合RabbitMQ
  • 网盘聚合搜索项目Aipan(爱盼)【续】
  • uniapp 实现 uni-file-picker 效果
  • 【继承】—— 我与C++的不解之缘(十九)
  • 秒杀 重复下单 详解
  • Unity AssetBundles(AB包)
  • stm32 spi接口传输asm330l速率优化(及cpu和dma方式对比)
  • 威联通-001 手机相册备份
  • docker.io连接超时的处理,用代理网站
  • 接口隔离原则理解和实践
  • 计算机网络-网络安全
  • 游戏引擎学习第31天
  • k8s 资源管理resourceQuota
  • Luma AI技术浅析(五):GAN 改进技术
  • qemu 9.1.2 源码编译