日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Leetcode题库203.移除链表元素(尾指针填充 / 虚头指针定义 c实现)

發布時間:2024/4/18 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Leetcode题库203.移除链表元素(尾指针填充 / 虚头指针定义 c实现) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 思路
    • 方法1
    • 方法2
  • 代碼
    • 方法1

思路

方法1

下面提供了方法1的代碼,可供參考
ret指針做返回鏈表的頭指針,last做返回鏈表的尾指針
第一步:找頭

使用指針p遍歷鏈表,找到第一個val值不為給定val值的結構體,將其賦給ret指針,并使得last指針指向當前返回指針尾部,也就是ret指針指向的地方(因為當前返回鏈表長度為1)

第二步:填尾
使用指針p遍歷鏈表,找到val值不為給定val值的結構體將其賦給last指針的next,然后調整last使其再次指向返回鏈表尾部

方法2

方法2較為簡單,未給出代碼實現
第一步:
定義一個虛的頭部指針ret,使得ret->指向head,一個遍歷指針p = ret

第二步:
若p->next->val = val,說明p->next需要被剔除,則令p = p->next->next,如此循環直至遍歷整個鏈表
最后去掉我們先前定義的虛的頭部指針,返回ret->next即可

代碼

方法1

struct ListNode* removeElements(struct ListNode* head, int val){struct ListNode *ret = NULL, *last = NULL, *p = head;while(p!=NULL){if(ret==NULL){if(p->val!=val){ret = p;p = p->next;last = ret;last->next = NULL;}else{p = p->next;}}else{if(p->val!=val){last->next = p;p = p->next;last = last->next;last->next = NULL;}else{p = p->next;}}}return ret; }

總結

以上是生活随笔為你收集整理的Leetcode题库203.移除链表元素(尾指针填充 / 虚头指针定义 c实现)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。