树的DFS遍历

from functools import lru_cache
class TreeNode:
    def __init__(self, val):
        self.val = val
        self.left, self.right = None, None


# 二叉树
visited = set()

@lru_cache
def DFS(node: TreeNode):
    if node in visited:
        return
    # 处理当前层
    visited.add(node)
    # 开始递归
    DFS(node.left)
    DFS(node.right)


# 多叉树
visited = set()
def dfs(node: TreeNode, visited:set):
    visited.add(node)
    for next_node in node.children():
        DFS(next_node, visited)
发布了140 篇原创文章 · 获赞 53 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_44291044/article/details/105178557