首页 > 试题广场 >

二叉树展开为单链表

[编程题]二叉树展开为单链表
  • 热度指数:1014 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
给定一个节点个数为n的二叉树,请你把这个二叉树展开为一条单链表。
1.展开后的链表同样是TreeNode,其中right指针指向下一个节点,left节点为空
2.链表的顺序与给定二叉树的先序遍历顺序相同。
3.该题不需要返回链表或者树,请你在原树上面操作,系统会最后检查原树的情况来判断你的代码是否正确
4.该题有O(1)额外空间复杂度的解法,你能实现吗?传入的TreeNode不计入空间复杂度计算
例如:
原二叉树是
展开后是

数据范围:二叉树的节点数满足 ,二叉树节点值满足
示例1

输入

{1,2,3,4,8}

输出

{1,#,2,#,4,#,8,#,3}
示例2

输入

{0}

输出

{0}

说明:本题目包含复杂数据结构TreeNode,点此查看相关信息
头像 牛客马MAXEY
发表于 2023-10-14 14:29:15
/** * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * TreeNode(int x) : val(x), left(nullptr), right(nullptr) { 展开全文
头像 太阳hxy
发表于 2023-07-15 09:22:47
二叉树展开为单链表 思路: 1.先进行计数一下二叉树的节点的个数(递归) 2.开一个用于存树的节点的容器数组 3.将二叉树的节点存入数组容器中 4.再将二叉树的展开为单链表 代码: import java.util.*; import java.util.ArrayList; /* * 展开全文
头像 小步惊惊
发表于 2022-06-02 19:48:07
import java.util.ArrayList; public class Solution { public int number; public void expandTree (TreeNode root) { // write code here if(root==nu 展开全文
头像 鲜橙榨汁lisey
发表于 2024-04-12 20:15:51
public TreeNode expandTree (TreeNode root) { // write code here if (root == null) { return root; } 展开全文
头像 17c89
发表于 2024-04-17 16:47:53
import java.util.*; /* * public class TreeNode { * int val = 0; * TreeNode left = null; * TreeNode right = null; * public TreeNode(int v 展开全文
头像 姐姐的遮阳伞
发表于 2022-04-09 15:40:39
import java.util.*; /* * public class TreeNode { * int val = 0; * TreeNode left = null; * TreeNode right = null; * public TreeNode(int v 展开全文
头像 2ez4me
发表于 2022-04-03 20:16:53
import java.util.*; /* * public class TreeNode { * int val = 0; * TreeNode left = null; * TreeNode right = null; * public TreeNode(int v 展开全文

问题信息

难度:
3条回答 1836浏览

热门推荐

通过挑战的用户

查看代码