0%

LeetCode-114

题目

结果

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
class Solution {
public void flatten(TreeNode root) {
if (root == null) {
return;
}
List<Integer> preOrder = new ArrayList<>();
dfs(root, preOrder);
root.left = null;
TreeNode tmp = root;
for (int i = 1; i < preOrder.size(); i++) {
if (tmp.right == null) {
tmp.right = new TreeNode(preOrder.get(i));
} else {
tmp.right.val = preOrder.get(i);
tmp.right.left = null;
}
tmp = tmp.right;
}
}

private void dfs(TreeNode root, List<Integer> ans) {
if (root == null) {
return;
}
ans.add(root.val);
dfs(root.left, ans);
dfs(root.right, ans);
}
}

复杂度

时间复杂度:O(n)

空间复杂度:O(n)