【Leetcode刷题Python】从列表list中创建一颗二叉树

简介: 本文介绍了如何使用Python递归函数从列表中创建二叉树,其中每个节点的左右子节点索引分别是当前节点索引的2倍加1和2倍加2。

1 思路

使用递归创建二叉树,每个节点最多有两个子节点,以索引去从列表中取子节点的值,i为根节点,左子节点的值为2×i+1,右子节点的值为2×i+2。

2 python实现

class TreeNode:
    def __init__(self, x):
        self.val = x
        self.left = None
        self.right = None
def createTree(root,rt,i):
    if i <len(rt):
        if not rt[i]:
            return None
        else:
            root = TreeNode(rt[i])
            root.left =  createTree(root.left,rt,2*i+1)
            root.right = createTree(root.right,rt,2*i+2)
            return root
    return root 

root_list = [3,9,20,None,None,15,7]
root = TreeNode(-1)
root = createTree(root,root_list,0)
目录
相关文章
|
14天前
|
JavaScript
Vue3列表(List)
这段代码介绍了一个基于 Vue3 的列表组件库 `Vue Amazing UI`。该库提供了丰富的自定义选项,如边框、垂直布局、分割线、尺寸、加载状态等,并支持分页、自定义样式及操作项。组件通过插槽和属性实现高度灵活的内容展示与交互。
Vue3列表(List)
|
1天前
|
JavaScript
DOM 节点列表长度(Node List Length)
DOM 节点列表长度(Node List Length)
|
3天前
|
JavaScript
DOM 节点列表长度(Node List Length)
DOM 节点列表长度(Node List Length)
|
4天前
|
C语言 Python
深入理解并实践Python中的列表推导式
深入理解并实践Python中的列表推导式
9 1
|
5天前
|
JavaScript
DOM 节点列表长度(Node List Length)
DOM 节点列表长度(Node List Length)
|
9天前
|
JavaScript
DOM 节点列表长度(Node List Length)
DOM 节点列表长度(Node List Length)
|
7天前
|
JavaScript
DOM 节点列表长度(Node List Length)
DOM 节点列表长度(Node List Length)
|
11天前
|
JavaScript
DOM 节点列表长度(Node List Length)
DOM 节点列表长度(Node List Length)
|
14天前
|
存储 缓存 C语言
|
14天前
|
存储 测试技术 Python
Python 数组和列表有什么区别?
【8月更文挑战第29天】
22 4