104. Maximum Depth of Binary Tree

xiaoxiao2021-02-27  605

递归的方法

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
转载请注明原文地址: https://www.6miu.com/read-665.html

最新回复(0)