微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

力扣树相关的题目如何在自己的IDE中构建测试用例

转载一下:

https://www.jianshu.com/p/b4757b543aa8

我自己最常用的是树结构的构建过程,包括两部分:

1、结构体

'''
树的数据结构
'''
class TreeNode:
    def __init__(self, x):
        self.val = x
        self.left = None
        self.right = None

2、使用list创建树:

def create_tree(nodes):
    """
    根据列表构建一棵二叉树
    :param nodes: 层次遍历序列
    :return: 二叉树的根节点
    """

    def helper(node, i):                                    # 用列表递归创建二叉树,

        if i < len(nodes):                                  # 当下标索引满足条件时
            if nodes[i] in ['#', None]:                     # 如果列表中下标为i的结点为空
                return None                                 # 返回None
            else:
                node = TreeNode(nodes[i])                   # 构建当前结点
                node.left = helper(node.left, 2 * i + 1)    # 构建左子树,通过下标查找
                node.right = helper(node.right, 2 * i + 2)  # 构建右子树,通过下标查找
                return node                                 # 返回根节点为下标为i的元素的子树
        return node                                         # 返回根节点

    root = TreeNode(0)                                      # 临时结点
    root = helper(root, 0)                                  # 建立树
    return root                                             # 返回树的根节点

列表中的数据的顺序与层序遍历的结果相同。

3、调用上述函数create_tree(nodes)

创建树,并将返回的根节点保存在root中:

lst = [5,1,4,None,None,3,6]
root = create_tree(lst)

如果创建一个节点实例,代码如下:

a, b = TreeNode(1), TreeNode(3)

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐