博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
leetcode - Remove Linked List Elements
阅读量:4948 次
发布时间:2019-06-11

本文共 1061 字,大约阅读时间需要 3 分钟。

leetcode - Remove Linked List Elements

 

1 /** 2  * Definition for singly-linked list. 3  * struct ListNode { 4  *     int val; 5  *     ListNode *next; 6  *     ListNode(int x) : val(x), next(NULL) {} 7  * }; 8  */ 9 class Solution {10 public:11     ListNode* removeElements(ListNode* head, int val) {12         //if(head == NULL) return head;13         while(head!=NULL && head->val == val){14             head = head->next;15         }16         if(head == NULL) return head;17         ListNode* prev = head;18         ListNode* p = head->next;19         while(p!=NULL){20             if(p->val == val){21                     p = p->next;22                     prev->next = p;23                 }24                 else{25                     p = p->next;26                     prev = prev->next;27                 }28             }29         return head;30     }31 };

竟然写了好久——自己的链表真的好差啊……

需要注意必须保存当前节点p和前驱节点prev,如果当前节点=val,那么将前驱节点的next=当前节点的下一节点。

另外head节点要特别处理,因为head所指向的没有前驱节点。所以如果第一个节点=val,直接将head=head->next.

转载于:https://www.cnblogs.com/shnj/p/4496986.html

你可能感兴趣的文章
wddm 部署问题解决
查看>>
Strict Standards: Only variables should be passed by reference
查看>>
Slab-based Intersection
查看>>
将输入流转为字符串工具类
查看>>
hiho_offer收割18_题解报告_差第四题
查看>>
高斯消元
查看>>
AngularJs表单验证
查看>>
regasm.exe 注册dll
查看>>
什么是死锁,简述死锁发生的四个必要条件,如何避免与预防死锁
查看>>
静态方法是否属于线程安全
查看>>
fegin 调用源码分析
查看>>
Linux的基本命令
查看>>
02号团队-团队任务3:每日立会(2018-12-05)
查看>>
sql 语法大全
查看>>
SQLite移植手记1
查看>>
Java AmericanFlagSort
查看>>
Mysql远程连接报错
查看>>
C# windows程序应用与JavaScript 程序交互实现例子
查看>>
sqlServer去除字段中的中文
查看>>
HashMap详解
查看>>