首页 > 学院 > 开发设计 > 正文

Invert Binary Tree

2019-11-08 20:17:40
字体:
来源:转载
供稿:网友

Invert a binary tree.

     4   /   /  2     7 / /   / /1   3 6   9to
     4   /   /  7     2 / /   / /9   6 3   1
def invertTree(self, root):    if root:        root.left, root.right = self.invertTree(root.right), self.invertTree(root.left)        return root
def invertTree(self, root):    if root:        invert = self.invertTree        root.left, root.right = invert(root.right), invert(root.left)        return root
def invertTree(self, root):    stack = [root]    while stack:        node = stack.pop()        if node:            node.left, node.right = node.right, node.left            stack += node.left, node.right    return root
# recursivelydef invertTree1(self, root):    if root:        root.left, root.right = self.invertTree(root.right), self.invertTree(root.left)        return root        # BFSdef invertTree2(self, root):    queue = collections.deque([(root)])    while queue:        node = queue.popleft()        if node:            node.left, node.right = node.right, node.left            queue.append(node.left)            queue.append(node.right)    return root    # DFSdef invertTree(self, root):    stack = [root]    while stack:        node = stack.pop()        if node:            node.left, node.right = node.right, node.left            stack.extend([node.right, node.left])    return root

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表