#include<iostream> using namespace std; struct ListNode { int val; ListNode* next; ListNode(int val) { this->val=val; this->next=NULL; } }; class Solution { public: ListNode* deleteNode(ListNode* head, int val) { if(head==NULL)return head; auto newhead=head; if(head->val==val) { newhead=head->next; } auto p=head; head=head->next; while(head!=NULL) { if(head->val==val) { p->next=head->next; head=head->next; } else { p=head; head=head->next; } } return newhead; } }; // class Solution {//递归是解决链表问题的一大利器 // public: // ListNode* deleteNode(ListNode* head, int val) { // if(head!=NULL) // { // if(head->val==val) // { // return head->next; // } // else { // head->next=deleteNode(head->next,val); // return head; // } // } // else // return NULL; // } // };
剑指 Offer 18. 删除链表的节点
最新推荐文章于 2024-11-06 11:05:01 发布