首页 > 其他分享 >114. 二叉树展开为链表

114. 二叉树展开为链表

时间:2022-11-05 21:13:56浏览次数:72  
标签:preorderTraversal list 链表 114 二叉树 null root

给你二叉树的根结点 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(n)

空间复杂度:O(n)

 1 /**
 2  * @param {TreeNode} root
 3  * @return {void} Do not return anything, modify root in-place instead
 4  */
 5 var flatten = function(root) {
 6     const list = [];
 7     preorderTraversal = list.length;
 8     for (let i = 1; i < size; i++) {
 9         const prev = list[i - 1],
10             curr = list[i];
11         prev.left = null;
12         prev.right = curr;
13     }
14 }
15 const preorderTraversal = (root, list) => {
16     if (root !== null) {
17         list.push(root);
18         preorderTraversal(root.left, list);
19         preorderTraversal(root.right, list);
20     }
21 }

标签:preorderTraversal,list,链表,114,二叉树,null,root
From: https://www.cnblogs.com/icyyyy/p/16861291.html

相关文章

  • 二叉树的最大宽度系列问题
    二叉树的最大宽度系列问题作者:Grey原文地址:博客园:二叉树的最大宽度系列问题CSDN:二叉树的最大宽度系列问题求树的最大宽度题目描述给你一棵二叉树的根节点root,返......
  • 105. 从前序与中序遍历序列构造二叉树
    给定两个整数数组 preorder 和 inorder ,其中 preorder 是二叉树的先序遍历, inorder 是同一棵树的中序遍历,请构造二叉树并返回其根节点。示例1:  输入:pre......
  • 二叉树的遍历总结
    二叉树的遍历总结前序:https://leetcode.cn/problems/binary-tree-preorder-traversal/中序:https://leetcode.cn/problems/binary-tree-inorder-traversal/后序:https://l......
  • LeetCode 145. 二叉树的后序遍历
    问题描述给定一个二叉树,返回它的后序遍历。示例:进阶:递归算法很简单,你可以通过迭代算法完成吗?题目代码/***Definitionforabinarytreenode.*publicclassTre......
  • rust 基础 —— 创建链表
    使用枚举类usecrate::List::{Cons,Nil};enumList{//Cons:元组结构体,包含链表的一个元素和一个指向下一节点的指针Cons(u32,Box<List>),//Nil:末结......
  • leetcode 160. 相交链表 js 实现
    给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。图示两个链表在节点 c1 开始相交: ......
  • 【114】
    754. 到达终点数字 在一根无限长的数轴上,你站在0的位置。终点在target的位置。你可以做一些数量的移动 numMoves :每次你可以选择向左或向右移动。......
  • 算法题--重建二叉树
    6要求时间限制:1秒空间限制:32768K题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输......
  • #yyds干货盘点# LeetCode 腾讯精选练习 50 题:二叉树的最大深度
    题目:给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树[3,9,20,null,null,......
  • leetcode - 94. 二叉树的中序遍历
    94.二叉树的中序遍历List<Integer>inorder=newArrayList<>();publicList<Integer>inorderTraversal(TreeNoderoot){wit......