首页 > 代码库 > 华为机试—逆序链表输出
华为机试—逆序链表输出
题目描述:
将输入的一个单向链表,逆序后输出链表中的值。链表定义如下:
typedef struct tagListNode
{
int value;
struct tagListNode *next;
}ListNode;
要求实现函数:
void converse(ListNode **head);
【输入】head: 链表头节点,空间已经开辟好
【输出】head: 逆序后的链表头节点
【返回】无
【注意】只需要完成该函数功能算法,中间不需要有任何IO 的输入输出
#include<iostream> typedef struct tagListNode { int value; struct tagListNode *next; }ListNode; void print(ListNode **head) { ListNode *f=(*head)->next; while(f) { printf("%d\n",f->value); f=f->next; } } void converse(ListNode **head) { ListNode *f=(*head)->next; ListNode* pre=NULL; ListNode *s; while(f){ s=f->next; f->next=pre; pre=f; f=s; } (*head)->next=pre; } int main(int argc, char *argv[]) { ListNode *h=(ListNode*)malloc(sizeof(ListNode)); h->next=NULL; for(int i=0;i<10;++i) { ListNode *tmp=(ListNode*)malloc(sizeof(ListNode)); tmp->value=http://www.mamicode.com/i;>
测试结果:
华为机试—逆序链表输出
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。