返回顶部
首页 > 资讯 > 操作系统 >114. 二叉树展开为链表
  • 200
分享到

114. 二叉树展开为链表

链表数据结构pythonleetcode算法二叉树 2023-08-30 16:08:11 200人浏览 八月长安
摘要

114. 二叉树展开为链表 题目-中等难度示例1. 展开为右子树 题目-中等难度 给你二叉树的根结点 root ,请你将它展开为一个单链表: 展开后的单链表应该同样使用 Treenode ,其中 right 子指针指向链表中下一

题目-中等难度

给你二叉树的根结点 root ,请你将它展开为一个单链表:

展开后的单链表应该同样使用 Treenode ,其中 right 子指针指向链表中下一个结点,而左子指针始终为 null 。
展开后的单链表应该与二叉树 先序遍历 顺序相同。

示例

在这里插入图片描述
示例 1:

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

示例 2:

输入:root = []
输出:[]

示例 3:

输入:root = [0]
输出:[0]

提示:

  • 树中结点数在范围 [0, 2000] 内
  • -100 <= Node.val <= 100

进阶:

你可以使用原地算法(O(1) 额外空间)展开这棵树吗?

来源:力扣(LeetCode
链接:https://leetcode.cn/problems/summary-ranges
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

1. 展开为右子树

时间
52ms
击败 33.42%使用 python3 的用户
内存
15.93MB
击败 80.83%使用 python3 的用户

# 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 = rightclass Solution:    def flatten(self, root: Optional[TreeNode]) -> None:        """        Do not return anything, modify root in-place instead.        """        # 如果root节点存在        while root:            # 判断左节点是否存在            if not root.left:                # 左节点不存在,当前节点的右节点作为下一个遍历的root节点                root = root.right            # 左节点存在            else:                # 设置pre为左节点                pre = root.left                # 找寻左节点的最右子节点                while pre.right:                    pre= pre.right                # 将pre右节点设置为root右节点, 相当于设置root左节点的最右节点的右节点为root右节点                pre.right = root.right                # 然后将root的右节点替换为左节点                root.right = root.left                # 移除左节点                root.left = None                # 设置root的右节点为下一次遍历的root节点                root = root.right

来源地址:https://blog.csdn.net/Ashiu/article/details/132541906

--结束END--

本文标题: 114. 二叉树展开为链表

本文链接: https://lsjlt.com/news/383223.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 114. 二叉树展开为链表
    114. 二叉树展开为链表 题目-中等难度示例1. 展开为右子树 题目-中等难度 给你二叉树的根结点 root ,请你将它展开为一个单链表: 展开后的单链表应该同样使用 TreeNode ,其中 right 子指针指向链表中下一...
    99+
    2023-08-30
    链表 数据结构 python leetcode 算法 二叉树
  • C++实现LeetCode(114.将二叉树展开成链表)
    [LeetCode] 114. Flatten Binary Tree to Linked List 将二叉树展开成链表 Given a binary tree, flatten i...
    99+
    2024-04-02
  • 前端算法题解leetcode114二叉树展开为链表
    目录正文解题思路-基础代码实现解题思路-进阶代码实现正文 题目地址 给你二叉树的根结点 root ,请你将它展开为一个单链表: 展开后的单链表应该同样使用&nbs...
    99+
    2024-04-02
  • C++如何实现二叉树链表
    目录C++二叉树链表C++二叉树转链表C++二叉树链表 Node.h #ifndef NODE_H #define NODE_H #include <iostream> ...
    99+
    2024-04-02
  • C语言数据结构之二叉链表创建二叉树
    目录一、思想(先序思想创建)二、创建二叉树(1)传一级参数方法(2)传二级参数方法一、思想(先序思想创建) 第一步先创建根节点,然后创建根节点左子树,开始递归创建左子树,直到递归创建...
    99+
    2024-04-02
  • Python树表查找(二叉排序树、平衡二叉树)
    目录什么是树表查询?1. 二叉排序树1.1 构建一棵二叉排序树1.2 二叉排序树的数据结构1.3 实现二叉排序树类中的方法:3. 平衡二叉排序树3.1 二叉平衡排序树的数据结构4. ...
    99+
    2023-01-07
    python建立二叉排序树 二叉排序树python实现 python实现平衡二叉树遍历
  • C++实现LeetCode(109.将有序链表转为二叉搜索树)
    [LeetCode] 109.Convert Sorted List to Binary Search Tree 将有序链表转为二叉搜索树 Given a singly linked...
    99+
    2024-04-02
  • 何为二叉搜索树
    本篇内容主要讲解“何为二叉搜索树”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“何为二叉搜索树”吧!什么是树树是一种数据结构,它是由n(n>=1)个有限结点...
    99+
    2024-04-02
  • C++链式二叉树深入分析
    目录二叉树的结构和概念二叉树的操作前序遍历中序遍历和后序遍历二叉树的节点个数求二叉树叶子结点个数求二叉树的深度在二叉树查找为X的结点之前我们的重点学习二叉树都是完全二叉树,接下来我们...
    99+
    2024-04-02
  • C++如何建立链式二叉树
    本篇内容介绍了“C++如何建立链式二叉树”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!递归建立二叉树二叉树的结构体typedef ...
    99+
    2023-07-02
  • 怎么用DOM与CSS展示二叉树
    这篇文章主要介绍“怎么用DOM与CSS展示二叉树”,在日常操作中,相信很多人在怎么用DOM与CSS展示二叉树问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么用DOM与CSS...
    99+
    2024-04-02
  • 数据结构之链式二叉树详解
    目录🍏1.二叉树的遍历🍏1.1前序遍历1.2中序遍历1.3后序遍历1.4层次遍历 🍎2.链式二叉树的实现🍎2.1二叉树的创建2.2前序遍历2.3中序遍历2.4后序遍历2.5...
    99+
    2023-05-16
    C语言链式二叉树 数据结构链式二叉树 C语言 数据结构
  • Python二叉搜索树与双向链表转换实现方法
    本文实例讲述了Python二叉搜索树与双向链表实现方法。分享给大家供大家参考,具体如下: # encoding=utf8 ''' 题目:输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。 要求...
    99+
    2022-06-04
    双向 链表 方法
  • 剑指Offer之Java算法习题精讲二叉树与链表
    题目一  解法 class Solution { public boolean isBalanced(TreeNode root) { if(root...
    99+
    2024-04-02
  • Java实题演练二叉搜索树与双向链表分析
    目录二叉搜索树与双向链表知识点-二叉树递归知识点-二叉搜索树思路代码二叉搜索树与双向链表 OJ链接 二叉树搜索树与双向链表 描述 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双...
    99+
    2022-12-08
    Java二叉搜索树 Java双向链表
  • 前端算法leetcode109题解有序链表转换二叉搜索树
    目录题目解题思路-基础代码实现解题思路-优化代码实现解题思路-进阶代码实现题目 题目地址 给定一个单链表的头节点  head ,其中的元素 按升序排序&...
    99+
    2024-04-02
  • C语言近万字为你讲透树与二叉树
    目录一、树概念及结构1.1 树的概念1.2 树的相关概念1.3 树的表示二、二叉树概念及结构2.1 概念2.2 特殊的二叉树:2.3 二叉树的性质2.4 二叉树的存储结构1. 顺序存...
    99+
    2024-04-02
  • C语言 链式二叉树结构详解原理
    目录前言二叉树节点声明二叉树的遍历构建二叉树1.前序遍历2.中序遍历3.后序遍历二叉树节点的个数二叉树叶子节点的个数二叉树第K层节点个数二叉树的高度/深度二叉树查找值为x的节点整体代...
    99+
    2024-04-02
  • Java中如何把二叉搜索树转换为累加树
    这篇文章主要介绍了Java中如何把二叉搜索树转换为累加树,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、题目给出二叉搜索树的根节点,该树的节点值各不相同,请你将其转换为累加...
    99+
    2023-06-25
  • Python编程实现双链表,栈,队列及二叉树的方法示例
    本文实例讲述了Python编程实现双链表,栈,队列及二叉树的方法。分享给大家供大家参考,具体如下: 1.双链表 class Node(object): def __init__(self, valu...
    99+
    2022-06-04
    队列 示例 链表
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作