回覆列表
-
1 # 使用者9002976109915
相關內容
- 具有7個結點的互不相似的二叉樹?
- 設計一個在不帶頭結點的連結串列的第i個元素之前插入一個元素的演算法。求高手,指點?
- 急急急!c語言資料結構單鏈表的建立,插入,刪除結點,定位,取值,求表長,清空,輸出?
- 2.設計一個演算法,將單鏈表中結點以逆序排列。逆序的單鏈表中的結點均為原表中的結點?
- 再不夠造新表的基礎上,將一個不帶有頭結點的單鏈表逆置?
- ”二叉樹中的度“是什麼意思?葉子結點是什麼?
- 有一個有序單鏈表(從小到大排序),表頭指標為head,編寫一個函式向該單鏈表中插入一個元素為x的結點,使?
- 有一線性表儲存在一個帶頭結點的迴圈單鏈表L中,寫出計算線性表元素個數的演算法?
- 寫一演算法在帶頭結點的單鏈表結構上實現線性表操作LOCATE(L,X)?
說一下思路,首先要找到s的前驅,然後刪除它。刪除它之前要更新前驅的前驅的next指標指向s迴圈單鏈表找前驅節點,可以用2個指標next和prev。令next始終在prev前面一步,那麼當next迴圈一圈時,prev指向的就是原節點的前驅所以寫一下虛擬碼prev = s.next //上面提到的prevnext = s.next.next //上面提到的nextpprev = null //存放前驅的前驅if(next == s)//連結串列只有2個節點,那麼刪除prev s.next = s next = null returnwhile(next != s)//讓next和prev一直走下去,直到迴圈一圈。這時prev就是s的前驅。用pprev記錄prev的前驅 next = next.next pprev = prev prev = prev.nextpprev.next = s//更新pprev的next指標,然後釋放prevprev = null