LeetCode【114】二叉树展开为链表

题目:
给定一个二叉树,原地将它展开为链表。

例如,给定二叉树

在这里插入图片描述
将其展开为:

在这里插入图片描述

// 最终转化完,pre节点只有right,没有left
    TreeNode pre = null;
    public void flatten(TreeNode root) {
        if(root ==null)
            return;
        if(pre!=null){
            pre.left = null;
            // pre的右节点顺序就是先序遍历的节点顺序
            pre.right = root;
        }
        pre = root;
        TreeNode copyRight = root.right;
        // 调用flatten(root.left)后 ,root.right会发生改变,
        // 因为pre引用指向root,pre.right=新root,right发生改变
        flatten(root.left);
        flatten(copyRight);
    }
发布了55 篇原创文章 · 获赞 14 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq422243639/article/details/103753589