使用迭代DFS获取二叉树中节点的深度?

时间:2019-03-16 18:40:03

标签: python python-3.x binary-tree depth-first-search

在树上使用递归DFS时,可以通过将深度作为参数传递给递归函数来获取任何节点的深度。但是,对于非递归DFS,我不确定如何获取节点的深度。

我有一个基本的DFS模板设置,但是我不知道要更改什么才能返回目标节点的深度。

class Node:
    def __init__(self, val):
        self.val = val
        self.left = None
        self.right = None

def dfs(root, val):
    stack = [root]
    while stack:
        node = stack.pop()
        if node.val == val:
            return node
        if node.left:
            stack.append(node.left)
        if node.right:
            stack.append(node.right)

我找到了以下解决方案:Depth of a tree using DFS,但是它似乎使用了另一种方式来存储树,而且似乎还需要事先了解整棵树。

0 个答案:

没有答案