给定一单链表的表头指针和指向其中一个节点的指针,要求以该指针为头将原链表逆序
来源:互联网 发布:淘宝特种经营有什么用 编辑:程序博客网 时间:2024/06/06 00:16
#include <stdlib.h>
#include <stdio.h>
struct Node
{
char data;
Node *next;
};
void printlist(Node *node)
{
while (node!=NULL)
{
printf("%c ",node->data);
node=node->next;
}
printf("\n");
}
void reverse(Node *head,Node *newhead)
{
Node *p=head;
Node *q=head;
Node *r=head;
int flag=0;
if(head==newhead)
{
flag=1;
}
q=q->next;
head->next=NULL;
while (q)
{
r=q;
q=q->next;
if(flag==0)
{
r->next=p;
p=r;
}
else
{
if(head->next==NULL)
{
head->next=r;
r->next=NULL;
}
else
{
r->next=head->next;
head->next=r;
}
}
if(flag==0 && r==newhead)
flag=1;
}
//head->next=NULL;
printlist(newhead);
}
void main()
{
Node a,b,c,d,e;
a.data='a';
a.next=&b;
b.data='b';
b.next=&c;
c.data='c';
c.next=&d;
d.data='d';
d.next=&e;
e.data='e';
e.next=NULL;
printlist(&a);
reverse(&a,&a);
}
- 给定一单链表的表头指针和指向其中一个节点的指针,要求以该指针为头将原链表逆序
- 已知指向节点p的指针,如何删除该节点(不知道链表头)
- 给定单链表的头指针和一个结点指针,定义一个函数在O(1)时间删除该节点
- 淘宝笔试题:一颗完全二叉树,要求给所有节点加上一个pNext指针,指向同一层的相邻节点;如果当前节点已经是该层的最后一个节点,则将pNext指针指向NULL
- 淘宝笔试题:一颗完全二叉树,要求给所有节点加上一个pNext指针,指向同一层的相邻节点;如果当前节点已经是该层的最后一个节点,则将pNext指针指向NULL
- 1.01一个单向链表,不知道头节点,一个指针指向其中的一个节点,问如何删除这个指针指向的节点?
- 关于指针和指向指针的指针
- 一般指针和指向指针的指针
- 指针数组,和指向指针的指针
- 指针数组和指向指针的指针
- 指针数组和指向指针的指针
- 一般指针和指向指针的指针
- 指针和指向指针的指针
- 数组指针和指向指针的指针
- 指针和指向指针的指针
- 指针和指向指针的指针
- 对于一颗完全二叉树,要求给所有节点加上一个pNext指针,指向同一层的相邻节点;如果当前节点已经是该层的最后一个节点,则将pNext指针指向NULL;给出程序实现,并分析时间复杂度和空间复杂度。
- 指向指针的指针
- linux线程属性的设置(转)
- ads1115寄存器操作
- VS 2005 创建DLL工程,并进行调用与调试例子
- servlet struts2清除页面缓存代码
- 人件--读书笔记3
- 给定一单链表的表头指针和指向其中一个节点的指针,要求以该指针为头将原链表逆序
- UUFlv控件1.0 版 属性、事件、方法介绍
- Thread loop of C++ and Java
- golang异常panic和恢复recover用法
- 【南方周末】微软复兴:告别卖软件模式依赖症
- 枚举原理Enum
- 学习笔记3 运算符与表达式
- 01.hibernate_msb
- ubuntu 如何添加 sudo权限