解题思路:
- 使用前序遍历的方法,添加到
list
当中
- 遍历
list
中的元素,让i
下标节点的左子树为空,右子树指向i+1
下标的节点.
代码实现:
class Solution {
public void flatten(TreeNode root) {
List list = new ArrayList();
preorderTraversal(root, list);
for (int i = 0; i < list.size() - 1; i++) {
list.get(i).left = null;
list.get(i).right = list.get(i+1);
}
}
public void preorderTraversal(TreeNode root, List list) {
if (root == null) return;
list.add(root);
preorderTraversal(root.left, list);
preorderTraversal(root.right, list);
}
}