问题描述:给定一个链表的头节点,求出链表的倒数第k个节点。 分析:这是链表里的经典问题,存在多种解法,下面给大家分享下我的想法。 解法一:很直观的一种做法是从头到尾扫描链表,然后求倒数第k个,但是由于单链表无法从尾部向头部扫描, 因此可以借助其他的辅助空间去存储扫描过的所有节点,例如,数组或栈均可。 ...
分类:
其他好文 时间:
2016-05-11 19:35:14
阅读次数:
149
已知链表的头节点为head,写一个函数把链表逆序。 找出单链表的中间节点 ...
分类:
其他好文 时间:
2016-05-08 10:25:32
阅读次数:
184
有段时间没有练习了,链表回文串判断用到了栈。链式A+B将没有的项用0补充。链表有没有头节点,及结点和链表的区别,即pNode和pHead。 题目分析: 《方法1》:反转链表 可以将原始链表反转,判断反转以后的链表与原始链表是否完全一致,如果一致便返回true,如果不一致则返回false。反转链表需要 ...
分类:
其他好文 时间:
2016-05-05 19:16:07
阅读次数:
175
题目 给定一个单链表中的表头和一个等待被删除的节点(非表头或表尾)。请在在O(1)时间复杂度删除该链表节点。并在删除该节点后,返回表头。 思路 因为O(1)内删除所以 不能从头节点去遍历找他的前驱节点 因为给的是待删除节点, 所以如果删除下一个节点可以在o(1)复杂度完成 所以 把当前节点覆盖成下一 ...
分类:
其他好文 时间:
2016-05-02 13:01:21
阅读次数:
167
HashMap的存储结构,如下图所示:
紫色部分即代表哈希表,也称为哈希数组,数组的每个元素都是一个单链表的头节点,链表是用来解决冲突的,如果不同的key映射到了数组的同一位置处,就将其放入单链表中。
1、首先看链表中节点的数据结构:
// Entry是单向链表。 (1.7以前)
// 它是 “HashMap链式存储法”对应的链表。
// 它实现了Map.Entry...
分类:
其他好文 时间:
2016-04-29 16:40:18
阅读次数:
314
经典题。双指针,一个指针先走n步,然后两个同步走,直到第一个走到终点,第二个指针就是需要删除的节点。唯一要注意的就是头节点的处理,比如,1->2->NULL, n =2; 这时,要删除的就是头节点。 ...
分类:
其他好文 时间:
2016-04-29 07:08:14
阅读次数:
264
一、基础知识:链表(线性表的链式存储结构)(1)特点:逻辑关系相邻,物理位置不一定相邻。(2)分类:a.不带头节点b.带头节点(3)单链表的存储结构:typedefstructSListNode
{
DataTypedata;
structSListNode*next;
}SListNode;二、代码实现(因避开使用二级指针,所以..
分类:
编程语言 时间:
2016-04-25 22:55:38
阅读次数:
588
题目:定义一个函数,输入一个链表的头节点,反转该链表并返回反转后链表的头节点,链表的定义如下: struct ListNode{ int value; ListNode* next; }; 链表反转的过程中要防止链表的断裂,假设每次都必须保存当前扫描节点的上一个结点,和下一个节点,不停的扫描此节点是 ...
分类:
其他好文 时间:
2016-04-25 00:32:28
阅读次数:
132
广义表是非线性的结构,是线性表的一种扩展,是有n个元素组成有限序列。
广义表的定义是递归的,因为在表的描述中又得到了表,允许表中有表#define_CRT_SECURE_NO_WARNINGS1
#include<iostream>
usingnamespacestd;
#include<assert.h>
enumType
{
HEAD,//头节点
..
分类:
其他好文 时间:
2016-04-22 10:44:06
阅读次数:
210
题目 描写叙述: 题目描写叙述: 输入一个不带头节点的单向链表(链表的节点数小于100),删除链表中内容反复的节点(反复的节点所有删除),剩余的节点逆序倒排。 要求实现函数: void vChanProcess(strNode * pstrIn,strNode * pstrOut); 【输入】 ps ...
分类:
其他好文 时间:
2016-04-19 19:35:59
阅读次数:
140