从第2个节点到第N个节点,依次逐节点插入到第1个节点(head节点)之后,最后将第一个节点挪到新表的表尾。Node* ReverseList(Node* head) { Node *p,*q; p=head->next; while(p->next!=NULL) //在这个循环过程中p所指的元素一直是不变的 { q=p...
分类:
其他好文 时间:
2015-09-23 17:05:17
阅读次数:
175
【206-Reverse Linked List(反转一个单链表)】【LeetCode-面试算法经典-Java实现】【所有题目目录索引】代码下载【https://github.com/Wang-Jun-Chao】原题 Reverse a singly linked list.
题目大意 反转单链表。
解题思路 使用头插法。
代码实现结点类public class ListNode {...
分类:
编程语言 时间:
2015-08-27 07:12:30
阅读次数:
281
思路1:O(n^2).“狸猫换太子”,不进行改动链表结构,只首尾交换len/2次。但是在本函数中用到了定位函数,定位函数实际上是遍历了一遍整个链表,所以综合效率很低,达到O(n^2). //单链表反转(O(n^2))void reverseList(Node* Head){ int count .....
分类:
其他好文 时间:
2015-08-12 01:08:40
阅读次数:
109
1.使用三个节点指针遍历链表实现反转 1 template 2 void ReverseList(SingleListNode *head) 3 { 4 //1.三个指针迭代 5 SingleListNode *p,*q,*r; 6 if (head->next==NULL)...
分类:
其他好文 时间:
2015-07-25 18:19:31
阅读次数:
126
ReverseLinked List
A linked list can be reversed eitheriteratively or recursively. Could you implement both?
迭代版本:
1. /**
2. * Definition for singly-linked list.
3. * struct ListNode {
4. ...
分类:
编程语言 时间:
2015-07-21 12:54:18
阅读次数:
112
反转单链表
1. 用数组将单链表的值存储在数组里。方法简单,但浪费空间。
2. 遍历链表,从第二个节点开始,将每个节点的next指向前一个节点。原链表的最后一个节点变为头节点。
3. 遍历链表,除第一个节点外,将每一个节点依次插到第一个节点后面。最后将第一个节点插到最后。
way 2 :
ListNode* reverse_1(ListNode* head){
L...
分类:
其他好文 时间:
2015-07-20 16:39:43
阅读次数:
96
单链表反转笔记: 1 #include 2 #include 3 using namespace std; 4 5 struct ListNode 6 { 7 int val; 8 ListNode* next; 9 ListNode(int i):val(i),next(...
分类:
编程语言 时间:
2015-04-07 13:22:27
阅读次数:
122
1 #include 2 3 struct Node 4 { 5 int data; 6 Node *next; 7 }; 8 9 typedef struct Node Node; 10 11 Node *Reverse(Node *head) 12 { ...
分类:
编程语言 时间:
2015-03-12 13:03:13
阅读次数:
168
/* 单链表反转/逆序 */Status ListReverse(LinkList L){ LinkList current,pnext,prev; if(L == NULL || L->next == NULL) return L; current = L->nex...
分类:
其他好文 时间:
2015-03-05 12:13:04
阅读次数:
333