首页 > 其他 > 详细

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

时间:2020-04-17 23:33:09      阅读:266      评论:0      收藏:0      [点我收藏+]

转载一下:

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)

 

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

原文:https://www.cnblogs.com/liliwang/p/12722729.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!