链表基础理论
1.基本使用
1)定义链表
struct ListNode{
int val; // 节点上存储的元素
ListNode* next; // 指向下一个节点的指针
ListNode(int x): val(x), next(NULL){} // 节点的构造函数
};
2)初始化节点
ListNode* head = new ListNode(5);
2.与数组对比的性能分析
此外,链表长度不固定,数组长度固定。
203.移除链表元素
嘿嘿,还是不会写,比上次好一点的是肯自己写ListNode了
直接记使用虚拟头结点的方法
跟着写了一遍,感觉链表没有那么难。
注意
1)建立两个节点:cur和dummyhead
2)指向下一个节点:dummyHead->next = head;
3)删除节点
ListNode* tmp = cur -> next;//先设置新节点指向要删除的节点
cur -> next = cur -> next -> next;//指向下下个节点
delete tmp;//删除中间节点
4)节点->next指向的是之后的整个节点,如果指向下一个节点的值需要cur->next->val
5)建立虚拟头结点的最后,需要让head重新设置成虚拟头结点的next,释放虚拟头结点