首页 > 其他 > 详细

华为机试题-- 单链表逆序

时间:2014-09-04 22:24:30      阅读:376      评论:0      收藏:0      [点我收藏+]

【问题】

 单链表逆序

【代码】

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

typedef struct ListNode {
	int value;
	struct ListNode *next;
}ListNode;
typedef struct ListNode *List;

List reverseList(List head) //列表逆序
{
	ListNode *rear, *curr, *front;
	rear = curr = head;
	while (curr != NULL) {
		front = curr->next;
		curr->next = rear;
		rear = curr;
		curr = front;
	}
	head->next = NULL;
	head = rear;
	return head;

}

List createdList(int a[], int len) //创建列表
{
	int i = 1;
	ListNode *head, *curr, *rear;
	curr = (ListNode *)malloc (sizeof (ListNode));
	curr->value = a[0];
	curr->next = NULL;
	head = rear = curr;
	while ( i < len) {
		curr = (ListNode *)malloc (sizeof (ListNode));
		curr->value = a[i++];
		curr->next = NULL;
		rear->next = curr;
		rear = curr;
	}
	return head;
}

void printList(List head) //打印列表
{
	ListNode *curr;
	curr = head;
	while(curr != NULL) {
		printf("%d ", curr->value);
		curr = curr->next;
	}
}

int main(void)
{
	int a[5] = {1, 2, 3, 4, 5};
	List head;
	head = createdList(a, 5);
	head = reverseList(head);
	printList(head);
	printf("\n");
	return 0;
}


华为机试题-- 单链表逆序

原文:http://blog.csdn.net/jjjcainiao/article/details/39059375

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!