赞
踩
203.移除链表元素
707.设计链表
206.反转链表
203 将删除节点的前置节点的next指向当前节点的next,再将要删除节点内存释放即为删除节点;
707 先要补全链表的数据结构,然后声明size和dennyhead两个私有变量,用于虚拟头节点和长度统计;
206 反转使用双指针不停的交换当前节点的next,将它指向前序的节点,然后遍历并重复上述操作。
这一次链表的内容非常的简单易懂,就是相关操作的书写比较绕,做好是在纸上画一下图,整理一下思路,不然会混乱^ _ ^
思路:
遍历链表然后删除对应val的节点
值得注意的是
遍历的时候是指针的移动,通常判断条件是指针指向NULL时终止
ListNode* removeElements(ListNode* head, int val) {
ListNode* dummyHead = new ListNode(0); // 设置一个虚拟头结点
dummyHead->next = head; // 将虚拟头结点指向head,这样方便后面做删除操作
ListNode* cur = dummyHead;//遍历指针指向虚拟头节点
while (cur->next != NULL) {//循环至链表末尾
if(cur->next->val == val) {//寻找==val的节点
ListNode* tmp = cur->next;//标记当前节点
cur->next = cur->next->next;//将next声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/空白诗007/article/detail/920461
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。