题目描述输入一个链表,从尾到头打印链表每个节点的值。返回新链表的头结点。方法一:用stack,或者最好vector.reverse vector printListFromTailToHead(struct ListNode* head) { sta...
分类:
其他好文 时间:
2015-06-12 13:06:04
阅读次数:
100
【题目】输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是按照递增排序的。【分析】合并单链表,需要找到头结点,对比两个链表头结点后,确定头结点,再确定头结点下一个结点,循环递归的如前面一样操作确定每个结点位置,同时考虑边界条件,如果两个链表为空,则肯定无需合并了,就是空链表,如果一个链表为空,另一个不为空,则返回不为空的链表。具体分析流程可以看下面的例子:【测试代码】#include<s...
分类:
编程语言 时间:
2015-06-09 11:57:03
阅读次数:
141
2.8和2.9在带头结点的链表中实现插入和获取元素的操作#include#include#includetypedef int Status ;typedef int ElemType;#define OK 1#define ERROR 0typedef struct LNode{ ElemT...
分类:
其他好文 时间:
2015-06-06 00:12:31
阅读次数:
136
最近看了《剑指offer》这本书,遇到了一个问题:反转链表
题目:定义一个函数,输入一个链表的头结点,反转该链表并输出反转后的链表的头结点。
链表结点定义如下:struct ListNode
{
int _data;
ListNode * _pNext;
};
解决方案如下:ListNode * ReverseList(ListNode * pHead)
{ ListNod...
分类:
其他好文 时间:
2015-06-05 22:39:32
阅读次数:
161
今天研究了一下十字链表,当稀疏矩阵的内部元素经常变化时,用三元顺序表操作起来比较麻烦,故用链表来实现对稀疏矩阵的存储,由于矩阵具有二维特性,单链表显然不适用,采用十字链表来实现对稀疏矩阵的存储。
十字链表有三种结点,1.总表头结点 2.行列表头结点 3.非零元素结点。下面一一介绍
1.总表头结点
共有5个子域
Row
Col
Next
...
分类:
其他好文 时间:
2015-06-04 22:54:57
阅读次数:
456
本程序采用JAVA语言实现了线性表的链式实现。首先定义了线性表的接口ListInterface,然后LList类实现了ListInterface完成了链表的实现。本实现中,链表是不带表头结点的,且有一个指针始终指向链表中的第一个元素,并没有定义尾指针。因此,每次向链表中插入新结点时需要遍历链表一次。...
分类:
编程语言 时间:
2015-06-03 17:35:20
阅读次数:
158
1,本程序实现了线性表的链式存储结构。实现的链表带有两个指针,一个始终指向链表中的第一个结点,另一个指针始终指向链表中的最后一个结点。之所以设置尾指针,是因为,在插入元素到链表中的末尾时,可以通过尾指针直接找到链表的最后一个元素,从而不需要遍历链表就可以完成插入操作。2,具体实现链表的类名为LLis...
分类:
编程语言 时间:
2015-06-03 17:19:10
阅读次数:
102
题目:输入两棵二叉树A和B,判断B是不是A的子结构。思路:首先判断A树的头结点是否等于B的头结点:如果相等的话则继续递归判断这两个子节点是否都相同,如果指向B的指针为NULL则返回true,其他情况都返回false(A为NULL,A->data!=B->data)如果不等的话则继续递归它的左右子树直...
分类:
其他好文 时间:
2015-05-28 22:57:29
阅读次数:
149
题目:已知两个链表head1和head2各自有序,请把它们合并成一个链表依然有序。(保留所有结点,即便大小相同)循环实现:1.重新申请一个头结点,使用指针p指向他,每新加一个结点,就将指针p后移一位,即指针p永远指向新链表的尾结点2.由于所用链表第一个结点不赋值,因此指针需要开始从头结点的下一个结点...
分类:
其他好文 时间:
2015-05-28 00:18:26
阅读次数:
193