104. Maximum Depth of Binary Tree

来源:互联网 发布:python turtle 坐标 编辑:程序博客网 时间:2024/06/16 22:15

递归的方法

class Solution(object):    def maxDepth(self, root):        """        :type root: TreeNode        :rtype: int        """        if root is None:            return 0        else:            return 1+max(self.maxDepth(root.left),self.maxDepth(root.right))

使用栈

stack=[]stack.pop()stack.append()
 def maxDepth(self, root):          if not root:         return 0     tstack,h = [root],0     #count number of levels     while tstack:         nextlevel = []         while tstack:             top = tstack.pop()             if top.left:                 nextlevel.append(top.left)             if top.right:                 nextlevel.append(top.right)         tstack = nextlevel         h+=1     return h

使用队列

queue = collections.deque()queue.append()queue.popleft()
def maxDepth(self, root):          if not root:         return 0     tqueue, h = collections.deque(),0     tqueue.append(root)     while tqueue:         nextlevel = collections.deque()         while tqueue:             front = tqueue.popleft()             if front.left:                 nextlevel.append(front.left)             if front.right:                 nextlevel.append(front.right)         tqueue = nextlevel         h += 1     return h
0 0