[python]226. Invert Binary Tree; 60ms

来源:互联网 发布:网络赌徒的下场 编辑:程序博客网 时间:2024/05/19 09:03

Invert a binary tree.

     4   /   \  2     7 / \   / \1   3 6   9
to
     4   /   \  7     2 / \   / \9   6 3   1
Trivia:
This problem was inspired by this original tweet by Max Howell:
Google: 90% of our engineers use the software you wrote (Homebrew), but you can’t invert a binary tree on a whiteboard so fuck off.

# 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 invertTree(self, root):
        """
        :type root: TreeNode
        :rtype: TreeNode
        """
        if root == None :
            return root
            
        stack = [root]
        
        while stack:
            s = stack.pop()

    # 不单写swap函数可以提高效率
            tmp = s.left
            s.left = s.right
            s.right = tmp

            if s.left:

                stack.append(s.left)
            if s.right:
                stack.append(s.right)
    
        return root

0 0
原创粉丝点击