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

相关推荐

黑皮白袜臭脚体育生:简历统一按使用了什么技术实现了什么功能解决了什么问题或提升了什么性能指标来写会更好
点赞 评论 收藏
分享
冰皮月饼_FLORRIEEE:你是准备投产品嘛?可以重新整理一下实习的bulletpoint,侧重描述你的工作所带来的结果收益,不要只写泛泛的内容(比如改写通过xx数据分析,提升xx),产品的价值并不在处理和分析数据的过程
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务