链表创建及反转
来源:互联网 发布:如何查看tcp端口 编辑:程序博客网 时间:2024/06/05 08:28
反转后,为啥不能打印链表头head->data ???
#include <stdio.h>#include <stdlib.h>#include <string.h>typedef struct ListNode* List;struct ListNode{int val;struct ListNode* next;};参考别人代码List reverseList2(List head) {List last=0,next=0;while(head){next = head->next;head->next = last;last = head;head = next;}return last;}//原来理解中的反转/*List reverseList(List head){List h, p, q, t=NULL; if(head == NULL || head->next==NULL) return NULL; h = head; p = h->next; q = p->next; while(q){ t = q->next;q->next = p;p = q;q = t; } h->next->next=NULL; h->next = p; return h;}*/实际实现反转List reverseList(List head){List p,t;if(!head)return NULL;p = head->next;head->next = NULL;while(p){t = p->next;p->next = head;head = p;p = t;}return head;}
创建链表头插法List CreateListHead(List head, int* data, int size){List p;int i;head = (List)malloc(sizeof(struct ListNode));head->next = NULL;for(i=0;i<size;i++){p = (List)malloc(sizeof(struct ListNode));p->val = data[i];p->next = head->next;head->next = p;}return head;}//创建链表尾插法List CreateListTail(List head, int* data, int size){List p,q;int i;head = (List)malloc(sizeof(struct ListNode));//head->next=NULL;p = q = head;for(i=0;i<size;i++){p = (List)malloc(sizeof(struct ListNode));//p->next = NULL;p->val = data[i];q->next = p;q = p;}p->next = NULL;return head;}void printlist( List L ){ List p = L; while (p) { printf("%d ", p->val); p = p->next; } printf("\n");}int main(){List h=NULL;int data[]={1,2,3,4,5,6,7,8,9}, n;n = sizeof(data)/sizeof(int);h = CreateListTail(h, data, n);printlist(h->next);h = reverseList(h->next);printlist(h);return 0;}
阅读全文
0 0
- 链表创建及反转
- 链表创建、反转
- 链表的创建、及两链表反转相加!
- [数据结构]链表创建、打印、反转
- 链表操作:创建,插入,排序,反转
- 链表的创建 打印 反转
- 链表操作:创建,插入,排序,反转
- 链表创建,添加,反转等
- 链表的建立及反转
- 一个链表创建、反转、打印的C语言代码
- 链表常用操作 (定义,创建,反转,合并,交叉)
- 单循环链表-创建、插入、删除、反转等操作
- 链表的创建,插入,删除,显示,反转
- string 动态双向链表的创建、排序,反转等
- 数据结构-链表创建,删除,插入,反转,连接
- 链表的基本操作,创建、删除、插入、反转
- Java链表及字符串反转问题集
- 链表反转
- Struts2框架下使用Kindeditor上传图片
- 批处理汇总
- Android系统解决方法数越界
- Sublime配置lua开发环境傻瓜式教学
- 函数式编程
- 链表创建及反转
- json
- wpf 如何对window样式中的close按钮添加关闭事件
- spring-mybatis 之SqlSessionFactoryBean
- Hdu 5492 Find a path【Dp】
- 简单网络管理协议(SNMP)通过第三方API SNMP++ 提取进程名称,路径与PID信息
- android Pernission的所有权限说明
- 常见网页错误400/401/403/404/500网页错误代码表示的含义
- kali2.0配置msf连接postgresql数据库