- Maximum Depth of Binary Tree
Given a binary tree, find its maximum depth.
The maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node.
Note: A leaf is a node with no children.
Example:
Given binary tree [3,9,20,null,null,15,7],
3
/ \
9 20
/ \
15 7
return its depth = 3.
我的罗里吧嗦,一点也不pythonic的解法
class Solution:
def maxDepth(self, root: TreeNode) -> int:
return self.findDepth(root)
def findDepth(self,root):
if root==None:
return 0
if root.left==None and root.right==None:
return 1
elif root.left!=None and root.right!=None:
return max(self.findDepth(root.left),self.findDepth(root.right))+1
elif root.right!=None and root.left==None:
return self.findDepth(root.right)+1
elif root.left!=None and root.right==None:
return self.findDepth(root.left)+1
下面才是python!!!
def maxDepth(self, root):
"""
:type root: TreeNode
:rtype: int
"""
if not root:
return 0
left = self.maxDepth(root.left)+1
right = self.maxDepth(root.right)+1
return max(left, right)
还是要多多学习鸭
迭代方法:
class Solution:
def maxDepth(self, root: TreeNode) -> int:
if root is None:
return 0
currentQueue=[root]
ret = 0
while currentQueue:
nextQueue=[]
for node in currentQueue:
if node.left:
nextQueue.append(node.left)
if node.right:
nextQueue.append(node.right)
ret = ret+1
currentQueue=nextQueue
return ret