原题链接: https://oj.leetcode.com/problems/flatten-binary-tree-to-linked-list/
public void flatten(TreeNode root) {
if (root == null) return;
List<TreeNode> pre = new ArrayList<TreeNode>(1);
pre.add(null);
flattenHelper(root, pre);
}
private void flattenHelper(TreeNode root, List<TreeNode> pre) {
if (root == null) return;
if (pre.get(0) != null) {
pre.get(0).left = null;
pre.get(0).right = root;
}
TreeNode rootRight = root.right;
pre.set(0, root);
flattenHelper(root.left, pre);
flattenHelper(rootRight, pre);
}