在二进制字符串树python中找到最长的字符串

时间:2015-05-02 19:34:58

标签: python string binary-tree

好吧所以我需要定义一个递归函数longest_length(),它接受二进制字符串树并返回树中最长字符串的长度。

我当然不知道如何做到这一点,但这就是我设置的内容:

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 ????

任何人都可以帮助我吗?这不是真正的功课,只是我在学习决赛时遇到的问题,我觉得我应该知道如何回答

1 个答案:

答案 0 :(得分:1)

假设你有一个具有字符串值属性的树节点类,以及存储其左右子节点的属性,实现将非常简单:

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