Create trie_find_height.py

This commit is contained in:
marina 2023-08-03 17:04:33 -07:00 committed by GitHub
parent feb21289db
commit 86d533c4bf
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

41
tries/trie_find_height.py Normal file
View File

@ -0,0 +1,41 @@
#!/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 == []:
return 1
height = [max_depth_recursive(c) for c in root.children]
return max(height) + 1
def max_depth_iterative(root):
stack = []
if root is not None:
stack.append((1, root))
depth = 0
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