首页 > 学院 > 开发设计 > 正文

【面试题】剑指offer 16

2019-11-06 06:03:20
字体:
来源:转载
供稿:网友

题目: 定义一个链表的头结点,反向输出链表

#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;}

结果


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表