台州企业网站建设公司,泉州seo排名,培训机构推广,公司介绍模板图片203. 移除链表元素 - 力扣#xff08;LeetCode#xff09; 思路#xff1a;这个题可以直接在原链表上进行修改#xff0c;但是修改链表的指向是有点麻烦的#xff0c;所以我们给两个指针#xff0c;phead和ptail,这是新链表的两个指针#xff0c;再给一个指针pcur来遍历… 203. 移除链表元素 - 力扣LeetCode 思路这个题可以直接在原链表上进行修改但是修改链表的指向是有点麻烦的所以我们给两个指针phead和ptail,这是新链表的两个指针再给一个指针pcur来遍历原链表如果原链表中不为val就尾插到新链表中有个细节点要注意的是就是在为即ptail这个位置上如果ptail本来就位NULL了你再一次置为NULL就会报错但有的测试用例来说如果原链表中倒数第二个节点不为val倒数第一个节点为val这个时候如果你不把新链表的尾的next置为NULL就会出错。 /*** 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* phead,*ptail;pheadNULL,ptailNULL;ListNode* pcurhead;while(pcur){if(pcur-val!val){if(phead){ptail-nextpcur;ptailptail-next;}else {pheadptailpcur;}}pcurpcur-next;}if(ptail){ptail-nextNULL;}return phead;
}