链表的反转
来源:互联网 发布:大学生网络党校官网 编辑:程序博客网 时间:2024/06/04 15:24
链表的反转,采用头插法
链表程序如下:
#pragma once
#include "stdlib.h"
#include<iostream>
using namespace std;
typedef struct sNode
{
int data;
sNode *next;
}Node;
void InitList();
void ReverseList();
#include "ReverseList.h"
int data[] = {1,2,3,4,5,6,7,8,9};
Node* head = NULL;
void InsertList()
{
if (!head)return;
for (int i = 0; i < sizeof(data)/sizeof(int);i++)
{
Node *temp = (Node*)malloc(sizeof(Node));
temp->data = data[i];
temp->next = head->next;
head->next = temp;
}
}
void PrintList()
{
if (!head)return;
Node *temp = head->next;
cout<<"head->";
while(temp != NULL)
{
cout<<temp->data;
cout<<"->";
temp = temp->next;
}
cout<<endl;
}
void InitList()
{
head = (Node*)malloc(sizeof(Node));
if (NULL == head)return;
head->data = 0;
head->next = NULL;
InsertList();
PrintList();
}
void ReverseList()
{
if (!head)return;
Node *temp = head->next;
Node *next;
while (temp)
{
next = head->next;
if (NULL != temp->next)
{
head->next = temp->next;
temp->next = temp->next->next;
head->next->next = next;
}
else
break;
}
PrintList();
}
参考:http://www.cnblogs.com/pianoid/archive/2011/05/03/reverse-a-singly-linked-list.html
- 链表的反转
- 链表的反转
- 链表的反转
- 链表的反转
- 链表的反转
- 链表的反转
- 链表的反转
- 链表的反转
- 链表的反转
- 链表的反转
- 链表的反转
- 链表的反转
- 链表的反转
- 链表的反转
- 链表的反转
- 链表的反转
- 链表的反转
- 链表的反转
- 阿里OSS对象存储的简单使用
- Common Dos
- 透彻研究Javascript类型转换
- 取模最短路
- PAT1119. Pre- and Post-order Traversals
- 链表的反转
- webstorm 当前目录替换
- IT名言
- Java static关键字与静态块
- 【python】os和os.path模块及其常用函数方法
- java容器类总结
- 蓝牙开发--Google文档(译) (文章末有完整项目链接)
- Android Studio Terminal xx不是内部或者外部命令
- TCP 滑动窗口