题目描述
思路
创建新链表,将原链表中的值不为val的结点尾插到新链表中
画图解释
定义一个指针pcur去遍历原链表,创建一个空链表,newHead和newTail在初始情况指向空。
pcur遍历原链表不为val的结点尾插到新链表中
完整代码
/*** Definition for singly-linked list.* struct ListNode {* int val;* struct ListNode *next;* };*/typedef struct ListNode ListNode;
struct ListNode* removeElements(struct ListNode* head, int val)
{//创建新链表ListNode*newhead,*newTail;newhead=newTail=NULL;//遍历原链表ListNode*pcur=head;while(pcur){//找值不为val的节点,往新链表进行尾插if(pcur->val!=val){//链表为空if(newhead==NULL){newhead=newTail=pcur;}else{//链表不为空newTail->next=pcur;newTail=newTail->next;}}pcur=pcur->next;}if(newTail)newTail->next=NULL;return newhead;
}