链表理论基础
节点构造:
structListNode{
int val;// 节点上存储的元素
ListNode *next;// 指向下一个节点的指针
ListNode(intx):val(x),next(NULL){}// 节点的构造函数};
203.移除链表元素
思路:
增加虚拟头节点后遍历查找
debug:
1.while(p->next!=NULL)
2.构造函数的使用
看视频后:
不用虚拟头节点:
头节点和非头节点分情况讨论:注意p!=NULL&&p->next!=NULL
使用虚拟头节点:
同一种方式操作节点,记得返回的是dummyHead->next;
707.设计链表
刚开始写的乱七八糟。
看代码抄第一次通过,然后看视频自己写代码再对照代码修改第二次通过,自己写代码第三次通过。
本题周日需要再写一遍。
206.反转链表
思路:
用两个指针指向cur和prev,但没想怎么解决保存cur后面的指针的问题。
看视频后:
用temp存储后面的指针,且初始化的时候prev为空,cur为head,观察得到cur为空时结束循环,返回最后的prev。