翻转一颗二叉树
Example:
Input:
4 / \ 2 7 / \ / \ 1 3 6 9
Output:
4 / \ 7 2 / \ / \ 9 6 3 1
1:递归方法
def invertTree(self, root):
"""
:type root: TreeNode
:rtype: TreeNode
"""
if not root:
return None
newRoot = TreeNode(root.val)
newRoot.left = self.invertTree(root.right)
newRoot.right = self.invertTree(root.left)
return newRoot
2:迭代方法
def invertTree(self, root):
"""
:type root: TreeNode
:rtype: TreeNode
"""
if not root:
return None
nodeList = [root]
while nodeList:
node = nodeList.pop(0)
if node:
nodeList.append(node.left)
nodeList.append(node.right)
node.left, node.right = node.right, node.left
return root
算法题来自:https://leetcode-cn.com/problems/invert-binary-tree/description/