https://leetcode-cn.com/problems/flatten-binary-tree-to-linked-list/
普通做法
- 准备一个容器,把先序遍历的结果存放在里面,然后遍历这个容器的时候把当前节点左子节点置null, 右子节点就是下一个节点

public void flatten(TreeNode root) {List<TreeNode> list = new ArrayList<>();preOrder(root, list);for (int i = 0; i < list.size() - 1; i++) {TreeNode node = list.get(i);node.left = null;node.right = list.get(i + 1);}}public void preOrder(TreeNode node, List<TreeNode> list) {if (node == null) {return;}list.add(node);preOrder(node.left, list);preOrder(node.right, list);}
