利用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;
            }
        }
    }
}
全部评论

相关推荐

05-14 20:34
门头沟学院 Java
窝补药贝八股:管他们,乱说,反正又不去,直接说680
点赞 评论 收藏
分享
野猪不是猪🐗:现在的环境就是这样,供远大于求。 以前卡学历,现在最高学历不够卡了,还要卡第一学历。 还是不够筛,于是还要求得有实习、不能有gap等等... 可能这个岗位总共就一个hc,筛到最后还是有十几个人满足这些要求。他们都非常优秀,各方面都很棒。 那没办法了,看那个顺眼选哪个呗。 很残酷,也很现实
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务