leetcode(20)N叉树系列题目
(1)589. N 叉树的前序遍历
class Solution:
def preorder(self, root: 'Node') -> List[int]:
res = []
def traversal(root):
if not root:
return
res.append(root.val)
for child in root.children: # 遍历孩子节点
traversal(child)
traversal(root)
return res
(2)590. N 叉树的后序遍历
class Solution:
def postorder(self, root: 'Node') -> List[int]:
res = []
def traversal(root):
if not root:
return
for child in root.children:
traversal(child)
res.append(root.val)
traversal(root)
return res
(3)559. N 叉树的最大深度
迭代,层序遍历
class Solution:
def maxDepth(self, root: 'Node') -> int:
if not root:
return 0
res = 0
from collections import deque
que = deque([root])
while que:
size = len(que)
for _ in range(size):
cur = que.popleft()
if cur.children:
for child in cur.children:
que.append(child)
res += 1
return res
递归
class Solution:
def maxDepth(self, root: 'Node') -> int:
if not root:
return 0
res = 0
for child in root.children:
res = max(res, self.maxDepth(child))
return res + 1
分类:
leetcode算法题
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示