利用pre节点+迭代将二叉树展开为链表
还是有点难的,但抓住重点 pre节点 + 迭代
class Solution { public void flatten(TreeNode root) { while(root != null){ if(root.left == null){ root = root.right; }else{ //先找到左子树最右的节点 TreeNode pre = root.left; while(pre != null){ pre = pre.right; } //再将最右的节点去链接root的右节点,就是先序遍历 pre.right = root.right; //按照题目,right要指向下一个节点 root.right = root.left; //left置为空 root.left = null; //迭代下去 root = root.right; } } } }