力扣樹相關的題目如何在自己的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)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM