what did not kill you, make you stronger! 今天下午终于完结这几日笼在心头的乌云,彻底打败! 之前读到<剑指offer>第三章的"反转链表的题目", 当时决定顺带复习国庆放假前的数据结构啥的,于是打算by my own head,不借助书本的来完成, 困难是有的,算法卡壳了,在座位上苦苦思不得,注意力很难集中时,真的想放弃。又比方说C++语法好像都忘了,这些都不是问题,当决定放弃时才是问题。
现在开始总结:
首先上的是代码问题,之后再对指针的操作做总结。
一,代码问题
1.单链表实现(最简单的模式,链表不排序,从表头开始插入新元素)
2.反转单链表
#include <iostream>
using namespace std;
//本来想写成函数模板的,不过想来模板形式简单,但是需要写的内容较多,容易出错误,这已经领教过了
class list
{
public:
list() {listHead = NULL;} //必须初始化单链表的头指针listHead, vs会给没有初始化的指针分配0XCCCCCCCC,而不是0X00000000(NULL)。
void addNode(int a);
void rotateList();
void print();
private:
class listNode
{
public:
listNode(int a, listNode *p):m_value(a),m_pNext(p) {}
int m_value;
listNode *m_pNext;
};
listNode *listHead;