利用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;
}
}
}
}
