有序链表转换二叉搜索树Python解法
给定一个单链表的头节点 head ,其中的元素 按升序排序 ,将其转换为高度平衡的二叉搜索树。
本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差不超过 1。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/convert-sorted-list-to-binary-search-tree
例:
输入: head = [-10,-3,0,5,9]
输出: [0,-3,9,-10,null,5]
解释: 一个可能的答案是[0,-3,9,-10,null,5],它表示所示的高度平衡的二叉搜索树。
解析:
每次构造根节点时,都选取中间位置的值进行构造即可。
# Definition for singly-linked list.
# class ListNode(object):
# def __init__(self, val=0, next=None):
# self.val = val
# self.next = next
# Definition for a binary tree node.
# class TreeNode(object):
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
class Solution(object):def sortedListToBST(self, head):""":type head: Optional[ListNode]:rtype: Optional[TreeNode]"""sum = []while head: # 将链表的值存到列表里面sum.append(head.val)head = head.nextdef build(left, right):if left > right: # 停止条件return Nonemid = (left + right)/2 # 中间值得下标root = TreeNode(sum[mid]) # 构建根节点root.left = build(left, mid - 1) # 左子树root.right = build(mid + 1, right) # 右子树return root # 返回构造好的树return build(0, len(sum) - 1) # 调用函数
有序链表转换二叉搜索树Python解法相关推荐
- 有序链表转换二叉搜索树
109. 有序链表转换二叉搜索树 给定一个单链表,其中的元素按升序排序,将其转换为高度平衡的二叉搜索树. 本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1. ...
- 109. 有序链表转换二叉搜索树
链接:109. 有序链表转换二叉搜索树 题解:https://leetcode-cn.com/problems/convert-sorted-list-to-binary-search-tree/so ...
- ( “树” 之 BST) 109. 有序链表转换二叉搜索树 ——【Leetcode每日一题】
二叉查找树(BST):根节点大于等于左子树所有节点,小于等于右子树所有节点. 二叉查找树中序遍历有序. 109. 有序链表转换二叉搜索树 给定一个单链表的头节点 head ,其中的元素 按升序排序 , ...
- 【LeetCode每日一题】——109.有序链表转换二叉搜索树
文章目录 一[题目类别] 二[题目难度] 三[题目编号] 四[题目描述] 五[题目示例] 六[题目提示] 七[解题思路] 八[时间频度] 九[代码实现] 十[提交结果] 一[题目类别] 二叉树 二[题 ...
- Java实现 LeetCode 109 有序链表转换二叉搜索树
109. 有序链表转换二叉搜索树 给定一个单链表,其中的元素按升序排序,将其转换为高度平衡的二叉搜索树. 本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1. ...
- 【算法】有序链表转换二叉搜索树和从中序与后序遍历序列构造二叉树Java解答参考
三道算法题 1.有序链表转换二叉搜索树 Java代码参考 2.从中序与后序遍历序列构造二叉树 Java代码参考 3.移除元素 Java代码参考 1.有序链表转换二叉搜索树 给定一个单链表,其中的元素按 ...
- LeetCode(109):有序链表转换二叉搜索树
Medium! 题目描述: 给定一个单链表,其中的元素按升序排序,将其转换为高度平衡的二叉搜索树. 本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1. 示例: ...
- 有序链表转换二叉搜索树(LeetCode)
将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树. 本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1. 示例: 给定有序数组: [-10,-3,0, ...
- LeetCode 109. 有序链表转换二叉搜索树(快慢指针+递归)
1. 题目 给定一个单链表,其中的元素按升序排序,将其转换为高度平衡的二叉搜索树. 本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1. 来源:力扣(LeetC ...
最新文章
- 物联网背后的网络安全风险
- 洞悉物联网发展1000问之物联网会产生哪些独角兽?机会在哪里?
- php追加记录到文件行首的办法
- Java最佳实践–多线程环境中的DateFormat
- 4,GIL全局解释器锁,event事件,信号量
- 首发联发科天玑820!Redmi 10X发布:售价1599元起
- 电脑硬件故障排除经验
- java 图片怎么设置抗锯齿,图片变形的抗锯齿处理方法
- 互联网人吐槽互撕系列漫画 要来啦~
- ie不能加载flash html,ie浏览器flash无法加载怎么修复_win7系统ie浏览器flash加载不了如何解决-系统城...
- Tahoma 字体在网页中应用的问题
- 学习笔记21.07.09:绘制色块图
- (二) 数据挖掘之分类
- 1、开启ArcGIS 脚本学习之路
- R包之tm:文本挖掘包
- python使用selenium启动谷歌浏览器无痕模式代码
- 市净率PB,市盈率PE
- 图像分割之 Geodesic segmentation 和 Graph-Cut
- Python3 pyttsx3 文字播放
- 跟着团子学SAP PS:增加WBS元素为分摊发送方提升单个项目内部成本精准归集 KSV1/KSU1
热门文章
- 读书笔记 —《钱从哪里来》
- SAP UI5 应用开发教程之十 - 什么是 SAP UI5 应用的描述符 Descriptor
- 如何找到 SAP 电商云 Spartacus UI 导航 navigation 的驱动器 - NavigationEntryItemEffects
- 关于 SAP 电商云 Spartacus UI SSR 的 state transfer 问题
- SAP UI5 初学者教程之五:视图控制器初探 试读版
- 如何基于 SAP CDS view 生成 object page
- 一个好用的 SAP UI5 本地打包(build)工具,自动生成Component-preload.js
- Angular getSimpleChangesStore的实现原理
- 微信开发系列之一 - 微信公众号开发的开发环境搭建
- 一步步使用SAP云平台的WebIDE开发SAP UI5应用