master-algorithms-py/tries/trie_find_height.py
2023-08-08 16:59:52 -07:00

44 lines
860 B
Python

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# author: bt3gl
class Node:
def __init__(self, val=None, children=None):
self.val = val
self.children = children
def max_depth_recursive(root):
if root is None:
return 0
if root.children: is None:
return 1
height = [max_depth_recursive(children) for children in root.children]
return max(height) + 1
def max_depth_iterative(root):
stack, depth = [], 0
if root is not None:
stack.append((1, root))
while stack:
this_depth, node = stack.pop()
if node is not None:
depth = max(depth, this_depth)
for c in node.children:
stack.append((this_depth + 1, c))
return depth