【 二叉树展开为链表】python刷题记录

先序遍历读取简化:

 把左子树变为右子树,把右子树移动到”新右子树“右下角

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution:
    def flatten(self, root: Optional[TreeNode]) -> None:
        """
        Do not return anything, modify root in-place instead.
        """
        #判空
        if not root:
            return
        #存右子树
        right=root.right
        #分别递归左右子树
        self.flatten(root.left)
        self.flatten(root.right)
        root.right=root.left
        root.left=None
        #可移动的结点指针
        node=root
        while node.right:
             node=node.right
        #遍历完左子树("新右子树"),连接原右子树
        node.right=right

 

相关推荐

  1. 【算法】114. 展开

    2024-07-19 10:34:03       44 阅读
  2. 【leetcode热展开

    2024-07-19 10:34:03       56 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-19 10:34:03       70 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-19 10:34:03       74 阅读
  3. 在Django里面运行非项目文件

    2024-07-19 10:34:03       62 阅读
  4. Python语言-面向对象

    2024-07-19 10:34:03       72 阅读

热门阅读

  1. shell处理用户输入——移动参数

    2024-07-19 10:34:03       21 阅读
  2. Github 2024-07-18 开源项目日报Top10

    2024-07-19 10:34:03       20 阅读
  3. React Router 6笔记

    2024-07-19 10:34:03       19 阅读
  4. dnd-kit for react: modern and light drag

    2024-07-19 10:34:03       21 阅读
  5. 模板方法设计模式

    2024-07-19 10:34:03       21 阅读
  6. 如何查询Oracle数据库一周内每天的SQL执行次数

    2024-07-19 10:34:03       17 阅读
  7. 小程序为什么要做分包处理

    2024-07-19 10:34:03       20 阅读
  8. C++ Primer:4.3 逻辑和关系运算符

    2024-07-19 10:34:03       22 阅读
  9. 【Android】Intent基础用法及作用

    2024-07-19 10:34:03       18 阅读