Flatten Binary Tree to Linked List

这道题自己的方法可以过,但是逻辑很麻烦,需要考虑头尾的许多情况,discussion里面的这种思路更好,因为最后的结果是前序遍历的顺序,我们可以试着把前序遍历的过程整个反过来利用回溯把各个部分添加到根节点上

class Solution(object):
    pre = None

    def flatten(self, root):
        """
        :type root: TreeNode
        :rtype: void Do not return anything, modify root in-place instead.
        """
        if not root:
            return

        self.flatten(root.right)
        self.flatten(root.left)
        root.right = self.pre
        root.left = None
        self.pre = root

results matching ""

    No results matching ""