本文包含链表的以下内容: 1、单链表的创建和遍历 2、求单链表中节点的个数 3、查找单链表中的倒数第k个结点(剑指offer,题15) 4、查找单链表中的中间结点 5、合并两个有序的单链表,合并之后的链表依然有序【出现频率高】(剑指offer,题17) 6、单链表的反转【出现频率最高】(...
分类:
编程语言 时间:
2015-09-09 22:49:11
阅读次数:
281
本文包含以下内容: 1、单链表的创建和遍历 2、求单链表中节点的个数 3、查找单链表中的倒数第k个结点(剑指offer,题15) 4、查找单链表中的中间结点 5、合并两个有序的单链表,合并之后的链表依然有序【出现频率高】(剑指offer,题17) 6、单链表的反转【出现频率最高】(剑指offer,题...
分类:
编程语言 时间:
2015-09-04 23:59:20
阅读次数:
552
Reverse a singly linked list.
click to show more hints.
Hint:
A linked list can be reversed either iteratively or recursively. Could you implement both?
使用迭代和递归实现单链表的反转。
迭代的方法之间在剑指offer上面...
分类:
其他好文 时间:
2015-07-30 13:38:43
阅读次数:
114
实现双向链表的反转。参考下面的例图:
(a) 原始双向链表
(b) 已经反转的双向链表
下面是一个用于反转双向链表的简单方法。所需要做的事情就是交换每个节点的前向指针和后向指针,然后调整链表的头指针和尾指针。...
分类:
其他好文 时间:
2015-06-14 01:53:25
阅读次数:
312
方法一:新建一个单链表,遍历源链表。每次将源链表中的节点插到新链表的第一个节点位置struct Node { int data; Node * next;};//带表头单链表//新建一个单链表,遍历源链表。每次将源链表中的节点插到新链表的第一个节点位置Node * reverselis...
分类:
其他好文 时间:
2015-05-14 13:42:46
阅读次数:
104
定义一个方法(函数),实现输入一个链表的头结点,然后可以反转这个链表的方向,并输出反转之后的链表的头结点。typedef struct Node{ int data; Node *next;} Node, *List;链表类的问题,涉及到了很多指针的操作,需要严谨的分析,全面的分析问题之...
分类:
其他好文 时间:
2015-04-07 19:27:22
阅读次数:
115
问题如题目,首先分析,链表的反转的空间复杂度如果为常数级,那么不可能完成从堆中申请数据来完成链表的反转工作,所以问题就转化为了如何将原链表修改/拆解为逆置的链表:函数形式假定如下 voidInverse(List*&head)//////修改原链表为逆置第一种办法最简单,就是在创建一个局部变量 Li...
分类:
其他好文 时间:
2015-03-16 23:00:40
阅读次数:
191
单链表的反转将学生成绩程序中的学生成绩结点按照座号反向输出 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 class list 7 { 8 public: 9 int num,score;10 ...
分类:
编程语言 时间:
2015-03-10 21:06:37
阅读次数:
120
上一篇讨论了链表的反转问题,这一篇讨论链表排序的问题1. 排序两个有序链表比较简单,属于归并排序,不再赘述时间复杂度O(n), 空间复杂度O(1) 1 ListNode *mergeList( ListNode *list1, ListNode *list2 ) { 2 if(!list1 ...
分类:
其他好文 时间:
2014-11-30 14:00:59
阅读次数:
132