剑指offer 面试题16
2018-03-03 22:51
260 查看
面试题16:反转链表题目:定义一个函数,输入一个链表的头结点,反转该链表并输出反转后该链表的头结点,链表定义如下:Struct ListNode{ Int M_nKey; ListNode* m_pNext;}我的代码如下:#include<stdio.h>#include<assert.h>#include<stdlib.h> typedef struct Node{ int data;//数据域 struct Node *next;//指向下一个节点的地址}Node,*List;//List== Node * //单链表以NULL结尾void InitList(Listplist){ assert(plist != NULL); if(plist == NULL) { return; } plist->next = NULL;} ListBuyNode(int val){ Node *p = (Node *)malloc(sizeof(Node)); p->data = val; //p->next = NULL; return p;} //头插void Insert_Head(Listplist ,int val) { Node *p = BuyNode(val); p->next = plist->next;//4 plist->next = p;//3} //从头到尾打印链表void Show(List plist){ Node*p=plist->next; for( ; p!= NULL ;p=p->next) { printf("%d ",p->data); } printf("\n");} void Reverse(List plist){ Node *p1=NULL; Node *p2=plist; Node *p3=NULL; while(p2->next != NULL) { Node *tmp=p2->next; if(tmp== NULL) { p1= p2; } p3=p2; p2=tmp; }} int main(){ Node plist1; plist1.next=NULL; int i=0; for(i=0; i<10; i++) { Insert_Head(&plist1 ,i); } Reverse(&plist1); Show(&plist1); return 0;}
相关文章推荐
- 剑指offer--面试题16
- 【面试题】剑指offer 16
- 剑指offer代码解析——面试题16反转单链表
- 【剑指Offer】面试题16:反转链表
- 剑指Offer面试题16 & Leetcode206
- 剑指Offer面试题16(Java版):翻转链表
- 【剑指offer】面试题16:数值的整数次方
- 剑指offer--面试题16: 反转链表
- 【剑指offer】面试题16:反转链表
- 剑指offer_面试题16_反转链表(两种方法)
- 剑指Offer 面试题16:数值的整数次方 Java代码实现
- 剑指offer 面试题16 反转链表-Java实现
- 剑指offer--面试题16:翻转链表--Java实现
- 【剑指offer】面试题16:反转链表
- 剑指offer面试题16之反转链表
- 剑指offer之面试题16:反转链表
- [剑指offer]面试题16:反转链表
- 剑指Offer面试题16(Java版):反转链表
- 剑指offer之面试题16 :反转链表
- 剑指Offer之面试题16:反转链表