【面试题】剑指offer 16
2017-03-07 16:43
357 查看
题目:
定义一个链表的头结点,反向输出链表
定义一个链表的头结点,反向输出链表
#include<iostream> using namespace std; struct ListNode { int _value; ListNode* _pNext; }; class List{ public: List() :head(NULL) {} ~List() { delete head; head=NULL; } ListNode* ReserList() { ListNode* RerserHead=NULL; ListNode* node=head; ListNode* prev=NULL; while (node) { ListNode* next=node->_pNext; if(next==NULL) RerserHead=node; node->_pNext=prev; prev=node; node=next; } return RerserHead; } void AddNum(int num) { ListNode* newnode=new ListNode(); if (head==NULL) { newnode->_value=num; newnode->_pNext=NULL; head=newnode; return; } ListNode* cur=head; while (cur->_pNext) { cur=cur->_pNext; } newnode->_value=num; newnode->_pNext=NULL; cur->_pNext=newnode; } void PrintList() { ListNode* cur=head; if (cur==NULL) { return; } while (cur) { cout<<cur->_value<<" "; cur=cur->_pNext; } cout<<endl; } void ReserPrint() { ListNode* cur=ReserList(); if(cur==NULL) return; while (cur) { cout<<cur->_value<<" "; cur=cur->_pNext; } cout<<endl; } private: ListNode* head; }; void test() { List l; l.AddNum(1); l.AddNum(2); l.AddNum(3); l.AddNum(4); l.AddNum(5); l.AddNum(6); l.AddNum(7); l.AddNum(8); l.AddNum(9); l.PrintList(); l.ReserPrint(); }
#include "List.h" #include<cstdlib> int main() { test(); system("pause"); return 0; }
相关文章推荐
- 剑指offer:面试题16 反转链表
- 【剑指offer】面试题16:反转链表
- 剑指offer-面试题16:反转链表
- 剑指offer-面试题16-反转链表
- 剑指Offer---面试题16:反转链表
- 【剑指offer】面试题16:反转链表
- 剑指Offer:面试题16——反转链表(java实现)
- 剑指offer 面试题16中 pPrev不应赋为pHead,pReversedHead可以
- 剑指offer-面试题 16:反转链表
- 剑指offer 面试题16:反转链表(Leetcode 206: Reverse Linked List) 题解
- 【剑指Offer学习】【面试题16 :反转链表】
- 【剑指offer】3.4代码的鲁棒性——面试题16:反转链表
- 剑指offer——面试题16:反转链表
- 剑指offer面试题16 反转链表
- 【剑指offer】面试题16:数值的整数次方
- 【剑指offer】面试题16、反转链表
- 剑指offer 面试题16 反转单链表
- 剑指Offer面试题16 反转链表
- 【面试题】剑指Offer-16-反转链表
- 【剑指offer 面试题16】反转链表