1、树的类实现:
class TreeNode(object): def __init__(self, x): self.val = x self.left = None self.right = None
2、最大深度:
def maxDepth(root): """ :type root: TreeNode :rtype: int """ if root: left=maxDepth(root.left) right=maxDepth(root.right) return 1+max(left,right) return 0
3、交换左右子树:
(1)递归实现
def invertTree(self, root): if root: root.left, root.right = self.invertTree(root.right), self.invertTree(root.left) return root
(2)栈实现
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