反转链表
来源:互联网 发布:工信部大数据认证考试 编辑:程序博客网 时间:2024/05/31 00:39
#include "stdafx.h"#include <stdlib.h>typedef struct Node {int value;Node *next;}LinkNode,*LinkList;//创建链表LinkList createList(){LinkList head = NULL;LinkNode *prelink = head;for (int i = 0;i < 6;i++){LinkNode* tt = (LinkNode*)malloc(sizeof(LinkNode));//为每一个节点创建内存tt->value = i;tt->next = NULL;if (prelink == NULL){head = tt;prelink = head;}else{prelink->next = tt;prelink = tt;}}return head;//返回头结点}//打印创建的链表void display(LinkList list){while (list != NULL){printf("%d", list->value);list = list->next;}}LinkNode* antiLink(LinkNode *head){LinkNode* newh = NULL;//新链表的头结点LinkNode *p = head;//p指向原链表的头结点while (p != NULL){LinkNode* temp = p->next;//保存节点p的下一个节点p->next = newh;//反转链表中的箭头方向newh = p;//将newh节点向后移一个p = temp;//将当前p节点向后移一个}return newh;//返回新链表的头结点}int main(){LinkList list,newhead;list=createList();display(list);newhead=antiLink(list);display(newhead); return 0;}
反转链表的核心:1)保存下一个节点
2)将当前节点和前一个节点向后移动一个
0 0
- 链表反转
- 反转链表
- 单向链表反转
- 链表反转:
- 链表的反转
- 链表反转
- 反转单向链表
- 链表反转
- 单向链表反转
- 单向链表反转
- 链表的反转
- 链表反转
- 反转链表
- 链表反转
- 链表反转
- 链表反转
- 链表反转
- 链表的反转
- 不可变类
- Linux线程(pthread)学习笔记
- hdu5875 二分加st
- 可执行"宏替换"的final变量
- Linux下分卷解压
- 反转链表
- 利用jsoup和httpclient来进行网站的爬取
- Java产生死锁的一个简单例子
- Java中final方法的几条规则
- 融云SDK:获取用户Token的方法
- 测试用户名称大全
- 树&&二叉树
- CentOS 7中runlevel到target的改变
- 对于一个小白来说,遇到的前端问题(2)