"""
# Definition for a Node.
class Node:
def __init__(self, val=None, children=None):
self.val = val
self.children = children
"""
class Solution:
def maxDepth(self, root: 'Node') -> int:
if not root:
return 0
result = []
self.res = 0
def traversal(root: 'Node', depth):
if len(result) == depth: result.append([])
for ch in root.children:
if ch: traversal(ch, depth + 1)
self.res = max(self.res, depth + 1)
traversal(root, 0)
return self.res
层序遍历法,递归法
class Solution:
def maxDepth(self, root: 'Node') -> int:
if not root: return 0
return self.getDepth(root)
def getDepth(self,root: 'Node'):
if not root: return 0
depth = 0
for i in root.children:
temp = self.getDepth(i)
depth = max(depth, temp)
return depth + 1
依次比较所有子树深度法,递归法
"""
# Definition for a Node.
class Node:
def __init__(self, val=None, children=None):
self.val = val
self.children = children
"""
class Solution:
def maxDepth(self, root: 'Node') -> int:
if not root: return 0
queue = collections.deque()
queue.append(root)
depth = 0
while queue:
depth += 1
for i in range(len(queue)):
node = queue.popleft()
for j in node.children:
if j: queue.append(j)
return depth
层序遍历法,迭代法