Problem:【题目】 给定一个单向链表的头节点head,节点的值类型是整型,再给定一个整数pivot。 实现一个调整链表的函数,将链表调整为左部分都是值小于 pivot的节点, 中间部分都是值等于pivot的节点,右部分都是值大于 pivot的节点。 除这个要求外,对调整后的节点顺序没有更多的要 ...
分类:
编程语言 时间:
2019-07-22 20:10:25
阅读次数:
149
题意及思路 题意:大致是最尾节点(tail)移动到头节点,移动k次。 思路:先遍历一遍链表,得到其长度,用len对k取模(目的是想减少不必要的移动操作,比如一个链表长为3,k为4,其实只需要移动4%3次)。然后就是将尾节点移动到头节点的操作,具体操作见代码。 代码 ...
分类:
其他好文 时间:
2019-07-22 15:12:51
阅读次数:
90
单链表的反转 回顾题目戳这里 https://pintia.cn/problem-sets/15/problems/724 带头节点的反转代码 不带头节点的反转代码 总结 带头节点的思路简单,就是一个头插法构建单链表。 不带头节点的思路我有点迷,现在还没弄明白。 ...
分类:
编程语言 时间:
2019-07-16 10:28:17
阅读次数:
115
线性表: 线性表表示是具有相同特性数据元素的有限序列。 ①相同特性:把同一类事务归类,方便批量处理。 ②有限:表中元素个数为n,n为有限大,n可以为0; ③序列:表中元素排成一列,体现了一对一的逻辑特性(每个元素有则仅有一个前驱和一个后继)。 顺序存储结构: 链式存储结构: ①单链表 带头节点:(H ...
分类:
其他好文 时间:
2019-07-10 15:08:51
阅读次数:
120
【题目】 给定一棵二叉树的头节点head,请返回最大搜索二叉子树的大小 【题解】 简化问题,想到该问题的解答应该有几种情形 第一种可能: 最大搜索二叉子树在head的左子树 第二种可能: 最大搜索二叉子树在head的右子树 第三种可能: 最大搜索二叉子树为自己;利用左子树的最大值与右子树的最小值 递 ...
分类:
编程语言 时间:
2019-06-23 16:03:03
阅读次数:
146
双向链表:每个节点包含指向后继节点的指针和指向前驱节点的指针。 继承关系图: 实体图: DualLinkList.h /* * DualLinkList: 双向链表类模板 * 成员变量: * Node: 节点实体 * m_header: 头节点 * m_length 链表长度 * m_step 步进 ...
分类:
其他好文 时间:
2019-06-22 10:29:02
阅读次数:
106
带头节点单链表 1.优势: 1)当链表为空时,指针指向头结点,不会发生null指针异常 2)方便特殊操作(删除第一个有效节点或者插入一个节点在表头) 3)单链表加上头结点之后,无论单链表是否为空,头指针始终指向头结点,因此空表和非空表的处理也统一了,方便了单链表的操作,也减少了程序的复杂性和出现bu ...
分类:
编程语言 时间:
2019-06-21 11:10:41
阅读次数:
94
图1所示为二叉树的层次遍历,即按照箭头所指方向,按照1、2、3的层次顺序,对二叉树每个节点进行访问 (此图反映的是自左至右的层次遍历,自右至左的方式类似)。 要进行层次遍历,需要建立一个队列。先将二叉树头节点入队列,然后出队列,访问该节点, 如果它有左子树,则将左子树的根结点入队;如果它有右子树,则 ...
分类:
其他好文 时间:
2019-06-17 10:25:49
阅读次数:
119
"Leetcode 92:反转链表II" 解决这道题需要三个步骤: 1. 找到需要反转的第一个节点。可以通过头节点前进m 1步,找到反转开始的位置。 2. 将需要反转的部分进行反转。参考 "Leetcode 206:反转链表" 。 3. 将反转部分与剩余部分进行链接。其中分为两种情况,m=1与m 1 ...
分类:
其他好文 时间:
2019-06-12 00:48:05
阅读次数:
118
题目:输入一个链表的头节点,从尾到头反过来打印出每个节点的值 将链表从头到尾压入栈内,出栈的过程就对应着从尾到头 ...
分类:
其他好文 时间:
2019-06-10 22:28:37
阅读次数:
109