前面有学习过二叉树,二叉搜索树(也叫做二叉查找树或者二叉排序树)也是一种二叉树,主要其搜索速度非常快,接下来了解一下。 二叉搜索树特点 (1)如果左子树不为空,则左子树上的结点的值都小于根结点 (2)如果右子树不为空,则右子树上的结点的值都大于根结点 (3)子树同样满足上述两点 如下就是一颗典型的二 ...
分类:
其他好文 时间:
2019-07-13 15:03:38
阅读次数:
141
# -*- coding: utf-8 -*- class BSTNode(object): def __init__(self, key, value, left=None, right=None): self.key, self.value, self.left, self.right = ke... ...
分类:
编程语言 时间:
2019-07-10 22:55:24
阅读次数:
142
将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。 本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。 示例: 给定有序数组: [-10,-3,0,5,9], 一个可能的答案是:[0,-3,9,-10,null,5],它可以表示下面这个高度平衡二叉 ...
分类:
编程语言 时间:
2019-07-10 22:48:08
阅读次数:
134
class Btreenode: #创建树 def __init__(self,data): self.data=data self.lchild=None self.rchild=None class BTS: def __init__(self,li): self.root=None for i... ...
分类:
其他好文 时间:
2019-07-09 19:23:35
阅读次数:
76
Python的魔术方法一般以__methodname__的形式命名,如:__init__(构造方法), __getitem__、 __setitem__(subscriptable所需method), __delitem__(del obj[key]所需method), __len__(len(…) ...
分类:
编程语言 时间:
2019-07-09 13:41:01
阅读次数:
109
题目描述输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。#-*-coding:utf-8-*-#@Time:2019-07-0711:03#@Author:JayceWong#@ProjectName:job#@FileName:BST2LinkedList.py#@Blog:https://blog.51cto.com/jayce1
分类:
其他好文 时间:
2019-07-07 12:51:31
阅读次数:
77
给定一个单链表,其中的元素按升序排序,将其转换为高度平衡的二叉搜索树。 本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。 示例: 给定的有序链表: [-10, -3, 0, 5, 9], 一个可能的答案是:[0, -3, 9, -10, null, 5], ...
分类:
其他好文 时间:
2019-07-07 09:15:37
阅读次数:
94
题目描述 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。 package new_offer; /** * 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。 * 要求不能创建任何新的结点,只能调整树中结点指针的指向。 * ...
分类:
其他好文 时间:
2019-07-04 14:12:34
阅读次数:
91
给定一个二叉搜索树,编写一个函数 kthSmallest 来查找其中第 k 个最小的元素。 说明:你可以假设 k 总是有效的,1 ≤ k ≤ 二叉搜索树元素个数。 示例 1: 输入: root = [3,1,4,null,2], k = 1 3 / \ 1 4 \ 2输出: 1 来源:力扣(Leet ...
分类:
其他好文 时间:
2019-07-01 09:13:50
阅读次数:
122