【leetcode每日刷题】114. Flatten Binary Tree to Linked List

https://leetcode.com/problems/flatten-binary-tree-to-linked-list/

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

For example, given the following tree:

    1
   / \
  2   5
 / \   \
3   4   6

The flattened tree should look like:

1
 \
  2
   \
    3
     \
      4
       \
        5
         \
          6

使用前序遍历的方法

# Definition for a binary tree node.
class TreeNode(object):
    def __init__(self, x):
        self.val = x
        self.left = None
        self.right = None

class Solution(object):
    def flatten(self, root):
        """
        :type root: TreeNode
        :rtype: None Do not return anything, modify root in-place instead.
        """
        if root is None:
            return root
        stack = []
        stack.append(root)
        current = TreeNode(0)
        while len(stack) != 0:
            peek = stack.pop()
            current.left = None
            current.right = peek
            current = current.right
            if peek.right != None:
                stack.append(peek.right)
            if peek.left != None:
                stack.append(peek.left)        
        return root
        

 

你可能感兴趣的:(python,leetcode刷题)