逆置/反转单链表
来源:互联网 发布:萧山哪里有学编程 编辑:程序博客网 时间:2024/06/05 09:06
头文件:
typedef int DataType;typedef unsigned int size_t;#define NULL 0typedef struct Node{DataType _data;struct Node* _pNext;}Node, *PNode;
源文件:
#include "LinkList.h"#include <assert.h>#include <stdlib.h>#include <stdio.h>// 在单链表的尾部插入一个节点void PushBack(PNode* pHead, DataType data){PNode pCurNode = NULL;PNode pNewNode = NULL;assert(pHead); pNewNode = BuyNode(data);if(pNewNode == NULL)return;if(*pHead == NULL){*pHead = pNewNode;}else{pCurNode = *pHead;while(pCurNode->_pNext){pCurNode = pCurNode->_pNext;}pCurNode->_pNext = pNewNode;}}// 构建一个新节点Node* BuyNode(DataType data){PNode pNewNode = (Node*)malloc(sizeof(Node));if(pNewNode == NULL)return NULL;pNewNode->_data = data;pNewNode->_pNext = NULL;return pNewNode;}// 正向打印单链表void PrintList(PNode pHead){if(pHead == NULL)return;while(pHead){printf("%d->",pHead->_data);pHead = pHead->_pNext;}printf("NULL\n");} //逆置单链表 PNode ReverseList(PNode* pHead) {Node* pRevNode = NULL; Node* pCurNode = NULL;Node* pTempNode = NULL;if(*pHead == NULL || (*pHead)->_pNext == NULL) return *pHead;pCurNode = *pHead; while(pCurNode) { pTempNode = pCurNode;pCurNode = pCurNode->_pNext;pTempNode->_pNext = pRevNode; pRevNode = pTempNode;}*pHead = pTempNode;return *pHead;}//销毁单链表,释放空间 void DestroyList(Node* pHead) { while(pHead) { Node* temp = pHead; pHead = pHead->_pNext; free(temp); } }
测试文件:
#include "LinkList.h"#include <stdio.h>void test(){PNode node = NULL;PushBack(&node,1);PushBack(&node,3);PushBack(&node,5);PushBack(&node,4);PushBack(&node,2);PushBack(&node,6);PrintList(node);node = ReverseList(&node);printf("逆置后的链表:\n");PrintList(node);DestroyList(node);}int main(){test();return 0;}
阅读全文
0 0
- 逆置/反转单链表
- 逆置 / 反转单链表
- 逆置/反转单链表
- 链表--逆置/反转单链表
- 逆置/反转单链表
- 单链表反转
- 单链表反转
- 单链表反转
- 反转单链表
- 单链表反转
- 反转单链表
- 单链表-反转
- 单链表反转
- 单链表反转
- 单链表反转
- 单链表反转
- 单链表反转
- 单链表反转
- 递归,斐波那契数列
- Markdown在线写作速成
- BZOJ 1113: [Poi2008]海报PLA
- Summary.1 正逆向思维
- 南阳ID:97 兄弟郊游问题
- 逆置/反转单链表
- swift 学习资料大全
- 项目经验--oracle性能
- 掩蔽效应
- 【LectCode】98. Validate Binary Search Tree
- BZOJ 1143: [CTSC2008]祭祀river
- java.lang.UnsupportedClassVersionError: servlet/a : Unsupported major.minor version 52.0 (unable to
- Pytharm激活
- 常用的水平垂直居中方法