在二叉字符串树中找到最长的字符串 python
Find the longest string in a binary string tree python
好的,所以我需要定义一个递归函数 longest_length(),它采用二叉字符串树和 returns 树中最长字符串的长度。
诚然,我不知道该怎么做,但这是我设置的:
def add_leaves(bnt):
"""Takes a BNT and returns the length of the largest string in the tree.
BNT - number"""
if isinstance(bnt, str):
return bnt
else:
return ????
谁能帮帮我?这不是真正的家庭作业,只是我在期末学习时遇到的一个问题,我觉得我应该知道如何回答
假设您有一个树节点 class,它有一个字符串值属性,以及用于存储其左右子节点的属性,实现将相当简单:
class TreeNode:
def __init__(self, val, left=None, right=None):
self.val = val
self.left = left
self.right = right
def find_max(node):
if (node is None): return ""
return max([find_max(node.left), node.val, find_max(node.right)], key=len)
tree = TreeNode("test", TreeNode("asdasjkdnaskdjasd", TreeNode("")), TreeNode("a"))
print find_max(tree) # asdasjkdnaskdjasd
您可以在此处查看演示:http://ideone.com/SE39tM
好的,所以我需要定义一个递归函数 longest_length(),它采用二叉字符串树和 returns 树中最长字符串的长度。
诚然,我不知道该怎么做,但这是我设置的:
def add_leaves(bnt):
"""Takes a BNT and returns the length of the largest string in the tree.
BNT - number"""
if isinstance(bnt, str):
return bnt
else:
return ????
谁能帮帮我?这不是真正的家庭作业,只是我在期末学习时遇到的一个问题,我觉得我应该知道如何回答
假设您有一个树节点 class,它有一个字符串值属性,以及用于存储其左右子节点的属性,实现将相当简单:
class TreeNode:
def __init__(self, val, left=None, right=None):
self.val = val
self.left = left
self.right = right
def find_max(node):
if (node is None): return ""
return max([find_max(node.left), node.val, find_max(node.right)], key=len)
tree = TreeNode("test", TreeNode("asdasjkdnaskdjasd", TreeNode("")), TreeNode("a"))
print find_max(tree) # asdasjkdnaskdjasd
您可以在此处查看演示:http://ideone.com/SE39tM