美文网首页
114 Flatten Binary Tree to Linke

114 Flatten Binary Tree to Linke

作者: 烟雨醉尘缘 | 来源:发表于2019-03-07 20:57 被阅读0次

Given a binary tree, flatten it to a linked list in-place.

Example:

解释下题目:

给定一棵树,把它掰直。

1. 递归

实际耗时:6ms

private TreeNode prev = null;

    public void flatten(TreeNode root) {
        if (root == null) {
            return;
        }
        //为什么是先右子树后左子树?因为这是从叶子开始构造的,而如果是从根开始是先左子树而后右子树的
        flatten(root.right);
        flatten(root.left);
        root.right = prev;
        root.left = null;
        prev = root;
    }

  一拿到这题我首先是先到宽度优先的算法把这个树的值存下来,然后再构造成树,后来去发现了很简单的递归方法,真的很秀。

时间复杂度O(n^2)
空间复杂度O(1)

相关文章

网友评论

      本文标题:114 Flatten Binary Tree to Linke

      本文链接:https://www.haomeiwen.com/subject/dlzhpqtx.html