反序一个单向链表
class Node {
Node* next;
}
// Return the new start after reversion.
Node* ReverseList (Node* start) {
}#include <stdio.h>
typedef struct snode{
char data;
struct snode *next;}node;
node *reserve(node *head){
node *p,*q,*r;
p=head;
q=p->next;
while(q!=null){
r=q->next;
q->next=p;
p=q;
q=r;}
head->next=null;
head=p;
return head;
}
这个题目有变种:
对链表中部分节点进行反转操作,这些节点相隔k个:
0->1->2->3->4->5->6->7->8->9
k=2
8->1->6->3->4->5->2->7->0->9
注意1 3 5 7 9 位置是不变的。
