刪除單鏈表中所有值為x的元素

2021-07-11 00:28:04 字數 918 閱讀 2246

刪除所有值為x的單鏈表中的元素

首先,我們先考慮第一種情況,就是說值刪除第乙個值為x的元素,這個比較簡單,

只需要挨個比較x和鍊錶節點的值,找到值相同的節點的前乙個就可以刪除這個節點了。

然後我們可以考慮兩種辦法第一種就是遞迴的去刪除,這個比較簡單,只需要刪除第乙個值和我們要刪除的值一樣的節點,然後把下乙個節點當做頭指標傳先去就好了。

這個就不給與**了。我把頭刪的**也貼上來。

void deletehead( pnode* phead)

}

那麼,我們來考慮一下非遞迴的方法吧。

pnode deletebyvalue( pnode* phead, int val )

if( null != *phead )

if(p2 == null )

p1 = p1->next;

p2 = p2->next;

} }

return *phead;

}

作為乙個程式設計師應該是可以看懂這些**的。首先,我們做了乙個判斷頭結點的值是否和我們要刪除的值相等,我們一直刪除到第乙個節點的值不和我們要刪除的節點相等為止。首先,我們判斷鍊錶是否還有節點,如果有,我們維護兩個指標,乙個指向頭結點,乙個指向第二個節點,首先,這裡有乙個問題就是第乙個指標指向的頭結點一定不會被刪除,因為前面已經刪除了頭結點的值一樣的情況。所以我們在第二個指標不是空的前提下判斷第二個節點的值是否和我們的值一樣就可以了。如果,我們的第二個指標和要刪除的值一樣了那麼刪除第二個節點。首先,將第一的節點的下乙個指向第二個節點的下乙個。然後刪除第二個節點。接著我們把第二個指標的值賦為第一的next,然後一直刪除到第二個節點也不一樣為止。這樣就刪除了一段值和我們要刪除的相同的情況了。然後判斷第二個指標是不是空了。空了 就退出。不空的後移。

遞迴刪除單鏈表中所有值為x的元素 單鏈表逆序

有解釋,可能一開始看不到,更著動手多敲幾遍就能掌握了。加油。題目描述 給定乙個帶頭結點的單鏈表,請將其逆序。即如果單鏈表原來為head 1 2 3 4 5 6 7,那麼逆序後變為head 7 6 5 4 3 2 1。先定義好鍊錶結構 coding utf 8 思路 1 首先將1 2 3 4變成1 4...

單鏈表刪除所有值為x的元素 順序表基本操作上機實驗

理解線性結構的基本概念,掌握兩種基本的儲存結構 順序儲存結構 順序表 和鏈式儲存結構 單鏈表 用c語言實現在兩種儲存結構上的對應操作 包括建立 刪除插入元素 遍歷等 鞏固強化c程式設計的基本方法和能力。完成順序表的建立 元素刪除 遍歷等操作,具體內容如下 有序的一組整數 1,2,3,4,6 設計順序...

刪除不帶頭結點的單鏈表工中所有值為x的結點

1.設計乙個遞迴演算法,刪除不帶頭結點的單鏈表工中所有值為x的結點。include include include include include include include include includeusing namespace std 鍊錶節點結構 typedef struct nod...