树(2)-----层、深度

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

猜你喜欢

转载自www.cnblogs.com/Lee-yl/p/9050471.html