当前为游客只读模式。登录后可提交代码判题并保存草稿与进度。
二叉树展开为链表
中等flatten()时间限制 2000 ms内存限制 128 MB复杂度要求 时间 O(n),空间 O(1)
二叉树展开为链表
给你二叉树的根结点 root,请你将它原地展开为一个单链表:
- 展开后的单链表应该同样使用
TreeNode,其中right指针指向下一个结点,left指针全部为null。 - 展开后的单链表应该与二叉树的先序遍历顺序相同。
约定
- 你必须在原树上直接修改(in-place),不能新建节点。
- 展开完成后,整棵树是一条只含
right指针的右斜链。
输入
root:二叉树根节点,节点数[0, 2000],节点值[-100, 100]。
输出
无返回值(void)。判题器会读取展开后的整棵树,按层序序列化为数组进行比对:每个节点的 left 必须为 null,right 依次指向下一个先序节点。
示例一
输入:
root = [1, 2, 5, 3, 4, null, 6]
展开后:
[1, null, 2, null, 3, null, 4, null, 5, null, 6]
示例二
输入:
root = []
展开后:
[]
示例三
输入:
root = [0]
展开后:
[0]
复杂度要求
- 时间复杂度
O(n)。 - 进阶空间复杂度
O(1)。
Loading...
输入
[[1,2,5,3,4,null,6]]
预期输出
[1,null,2,null,3,null,4,null,5,null,6]