python二維列表查找元素位置,python中二維數組如何查找_【劍指offer】---二維數組中的查找(Python)

 2023-10-06 阅读 29 评论 0

摘要:題目描述:python二維列表查找元素位置?輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重復的數字。例如輸入前序遍歷序列{1,2,4,7,3,5,6,8}和中序遍歷序列{4,7,2,1,5,3,8,6},則重建二叉樹并返回。CODE

題目描述:

python二維列表查找元素位置?輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重復的數字。例如輸入前序遍歷序列{1,2,4,7,3,5,6,8}和中序遍歷序列{4,7,2,1,5,3,8,6},則重建二叉樹并返回。

CODE:

# -*- coding:utf-8 -*-

# class TreeNode:

# def __init__(self, x):

# self.val = x

# self.left = None

# self.right = None

class Solution:

# 返回構造的TreeNode根節點

def reConstructBinaryTree(self, pre, tin):

# write code here

if len(pre) == 0: # 每次遞歸時,pre都會更新,當pre為0時,說明該節點下面為空。

return None

root = TreeNode(pre[0]) # 先使用每次更新的先序列表的第一個結點來創建新的結點

pos = tin.index(pre[0]) # 使用先序的第一個結點到中序 序列中找到索引位置,因為中序的這個索引位置可以將先序序列劃分為左右子樹

root.left = self.reConstructBinaryTree(pre[1:pos+1], tin[:pos]) # 將先序和中序的序列劃分后繼續進行父節點的左子樹的遞歸。

root.right = self.reConstructBinaryTree(pre[pos+1:],tin[pos+1:]) # 同上。

return root

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/2/122241.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息