国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

Leetcode 203. Remove Linked List Elements

2019-11-09 21:16:16
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

Remove all elements from a linked list of integers that have value val.

Example Given: 1 –> 2 –> 6 –> 3 –> 4 –> 5 –> 6, val = 6 Return: 1 –> 2 –> 3 –> 4 –> 5

s思路: 1. 操作鏈表,要?jiǎng)h除數(shù)。首先想想鏈表的邊界是什么?左邊是頭節(jié)點(diǎn),是邊界,右邊是為節(jié)點(diǎn)也是邊界。如果要?jiǎng)h除的節(jié)點(diǎn)恰好是頭節(jié)點(diǎn),就要考慮頭指針改變的問題。因此用dummy或pointer-to-pointer。 2. 用dummy:首先需要新建一個(gè)node,賦初值為0,然后需要一個(gè)dummy指針指向這個(gè)node。 3. 用pointer-to-pointer: 之前總結(jié)過(guò)指向指針的指針的兩種操作:第一種是只移動(dòng)指向指針的指針到新的位置,這個(gè)操作相當(dāng)于站位,放到需要的地方,不對(duì)鏈表產(chǎn)生改變;第二種操作是修改被指針指向的指針里的地址,讓指針指向新的節(jié)點(diǎn),這個(gè)操作會(huì)修改鏈表結(jié)構(gòu)! 這里寫圖片描述 以上,Operation 1表示移動(dòng)pointer-to-pointer指向不同節(jié)點(diǎn)的指針域,operation 2表示修改節(jié)點(diǎn)的指針域,讓指向新的node。這里最大的不同是,指針是低層次的,指向指針的指針是高層次的,更靈活,兩者不是一個(gè)級(jí)別的事物!如果鏈表操作中同時(shí)需要這兩個(gè)操作,就應(yīng)該考慮用pointer-to-pointer

//方法1:dummy節(jié)點(diǎn)class Solution {public: ListNode* removeElements(ListNode* head, int val) { // ListNode node(0); ListNode* dummy=&node; dummy->next=head; head=dummy; while(head->next){ if(head->next->val==val){ head->next=head->next->next; }else head=head->next; } return node.next; }};//方法1.1:dummy節(jié)點(diǎn),下面也行。但是需要delete dummy.不如上面方法來(lái)得快!class Solution {public: ListNode* removeElements(ListNode* head, int val) { // ListNode* dummy=new ListNode(0); dummy->next=head; head=dummy; while(head->next){ if(head->next->val==val){ head->next=head->next->next; }else head=head->next; } head=dummy->next; delete dummy; return head; }};//方法2:pointer-to-pointerclass Solution {public: ListNode* removeElements(ListNode* head, int val) { // ListNode** pp=&head; while(*pp){ if((*pp)->val==val){ *pp=(*pp)->next; }else pp=&((*pp)->next); } return head; }};
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 马山县| 调兵山市| 茌平县| 靖西县| 清涧县| 广灵县| 乡城县| 盱眙县| 安阳县| 双鸭山市| 星子县| 贵定县| 司法| 兴海县| 宁晋县| 望都县| 乐至县| 浙江省| 宝清县| 六盘水市| 广饶县| 崇礼县| 溧阳市| 绥德县| 宣武区| 赤城县| 喀喇沁旗| 东丽区| 长岭县| 平和县| 虹口区| 荣成市| 灌南县| 安泽县| 海丰县| 沙河市| 扎兰屯市| 汨罗市| 阳东县| 仁寿县| 阳东县|