leetcode python3笔记
学习编程,学习数据结构
荷月十六
这个作者很懒,什么都没留下…
展开
-
python练习——插入排序
插入排序练习——对链表进行插入排序插入排序Leetcode对链表进行插入排序插入排序插入排序是排序的一种。以链表为例,假如对输入数据进行升序排列,那么首先要在创建一个节点,数值为负无穷小,然后在新节点后面链接给出的链表数据然后取第一个节点为sort_list,第二个节点为当前节点current_node(为方便起见,画成两条链表,实际上是一条链表)将当前节点与前一个节点在数值上进行比较,如果当前节点的数值大于或等于前一个节点的数值,那么保持当前链表的结构,并将当前节点和上一个节点的指针分别指向它们原创 2020-08-03 14:07:26 · 346 阅读 · 0 评论 -
python练习——冒泡排序
起泡排序练习——相同的树、对称二叉树)原创 2020-08-02 20:31:38 · 544 阅读 · 0 评论 -
python练习——二叉树2
二叉树练习——相同的树Leetcode相同的树Leetcode相同的树问题描述:给定两个二叉树,编写一个函数来检验它们是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。示例:输入:输出:True输入:输出:False思考:如果给出两棵二叉树,如果他们的结构一样的话,那么他们的中序遍历、前序遍历、后序遍历的结果是一样的。如果在遍历过程中出现不一样的数值或结构,那么就停止遍历,返回结果False。具体代码如下# Definition for a binar原创 2020-07-29 17:37:04 · 205 阅读 · 0 评论 -
python练习——二叉搜索树2
二叉搜索树练习——验证二叉搜索树Leetcode验证二叉搜索树Leetcode验证二叉搜索树问题描述:给定一个二叉树,判断其是否是一个有效的二叉搜索树。假设一个二叉搜索树具有如下特征:(1)节点的左子树只包含小于当前节点的数。(2)节点的右子树只包含大于当前节点的数。(3)所有左子树和右子树自身必须也是二叉搜索树。示例:输入:输出: false思考:因为二叉搜索树的特征是中序遍历是一个升序排列,因此将输入的二叉树进行中序遍历,然后判断是否是升序排列具体代码如下# Definit原创 2020-07-28 22:15:49 · 148 阅读 · 0 评论 -
python练习——二叉搜索树
二叉搜索树练习——不同的二叉搜索树、不同的二叉搜索树 II二叉搜索树Leetcode二叉树的中序遍历二叉搜索树二叉搜索树是一种特殊的二叉树,它的左子节点小于根节点,根节点小于右子节点。如果使用中序排列的话,得到的结果是一个升序排列。如图所示的二叉搜索树的中序排列为[1,2,4,5,8,9,10]\left[1,2,4,5,8,9,10\right][1,2,4,5,8,9,10]Leetcode二叉树的中序遍历问题描述:给定一个整数n,求以1至n为节点组成的二叉搜索树有多少种?示例:输入:原创 2020-07-23 23:40:32 · 324 阅读 · 0 评论 -
python练习——二叉树
二叉树练习——二叉树的中序遍历二叉树Leetcode二叉树的中序遍历二叉树二叉树结构是一个节点上最多有两个子树的树结构。定义二叉树是用指针来定义树中的每个节点,包括一个节点值、一个指向左子树的左指针和一个指向右子树的右指针。如图所示代码如下所示class TreeNode: def __init__(self, x): self.val = x self.left = None self.right = None假如有一棵二叉树如下图所示原创 2020-06-01 18:56:38 · 297 阅读 · 0 评论 -
python练习——栈
栈练习——有效的括号栈Leecode有效的括号栈栈是一种线性表,它仅允许从栈顶输入元素和输出元素。输入过程也叫做入栈、压栈,输出过程也叫做出栈、退栈。在python中,栈是由列表定义的,具体代码如下所示class Stsck() def __init__(self): self.stack = [] #定义入栈函数 def push(self, data): self.stack.append(data) #定义出栈函数,首先判断栈是否已空 def out(self):原创 2020-05-31 14:39:51 · 380 阅读 · 0 评论 -
python练习——链表4
链表练习——两两交换链表中的节点Leecode两两交换链表中的节点Leecode两两交换链表中的节点问题描述:给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。示例:输入:1->2->3->4输出:2->1->4->3思考:一上来想到的方法就是递归法,按顺序从链表中选出两个节点,进行交换,然后把每组节点进行连接。假设有如下所示的链表定义一个链表节点为ListNode_1,令ListN原创 2020-05-14 23:06:48 · 203 阅读 · 0 评论 -
python练习——链表3
链表联系——合并两个有序链表链表递归入门Leecode合并两个有序链表链表在python中定义一个链表的方式是这样的。这是一个节点,包括值和下一个节点的地址class ListNode: def __init__(self, x): self.val = x self.next = Node在代码中定义一个链表结构的变量的方式如下。这表示变量listnode是一个链表的头节点,...原创 2020-04-18 22:33:30 · 385 阅读 · 0 评论 -
python练习——链表2
链表练习——删除链表的倒数第N个节点链表Leecode删除链表的倒数第N个节点链表链表在内存中存储是任意摆放的,不像数组一样,需要划出一片区域来进行存储。链表的存储可以形象地表示为下图中描述的样子。链表中各个节点依靠指针来联系,如下图中的箭头所示。如果要在链表中删除一个节点,可以表示为打断被删除节点所连接的两个箭头,然后将这两个箭头连接起来,如下图所示。与链表不同,数组如果想要删除一个...原创 2020-04-13 23:52:05 · 166 阅读 · 0 评论 -
python练习——链表
链表练习——两数相加原创 2020-04-10 19:40:14 · 846 阅读 · 0 评论