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); } }
|