Invert a binary tree.
4 / / 2 7 / / / /1 3 6 9to4 / / 7 2 / / / /9 6 3 1def invertTree(self, root): if root: root.left, root.right = self.invertTree(root.right), self.invertTree(root.left) return rootdef invertTree(self, root): if root: invert = self.invertTree root.left, root.right = invert(root.right), invert(root.left) return rootdef 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
新闻热点
疑难解答