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

首頁 > 開發 > Linux Shell > 正文

給定鏈表中間節點指針,刪除中間節點的方法

2020-07-27 19:21:48
字體:
來源:轉載
供稿:網友
問題如下
輸入:鏈表 a->b->c->d->e中指向節點c的指針
輸出:無返回值,但新鏈表變為a->b->d->e
解答:
想了好久沒想出來,看了提示才知道解法的。這里用到了一個小技巧。要刪除中間節點,但是我們不知道要刪除節點的上一個節點p,所以無法通過修改指針的方法(p->next=del->next)來刪除節點,但知道要刪除節點的后一個節點,那么我們換一個思路,把要刪除的節點的數據與該節點的后一個節點的數據交換,然后刪除后一個節點,從而達到目的。但是該方法不能刪除最后一個節點,原因顯而易見。
復制代碼 代碼如下:

// a tricky solution,can't delete the last one element
int delete_node(NODE* node) {
  int data;
  NODE *p=node->next;
   node->data=p->data;
   node->next=p->next;
  free(p);
}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 遂平县| 赤城县| 武宁县| 洪洞县| 安丘市| 陕西省| 偃师市| 靖边县| 鄱阳县| 禹州市| 南华县| 图们市| 扶风县| 禹城市| 平顶山市| 富民县| 恭城| 南丰县| 明溪县| 上虞市| 扶绥县| 银川市| 巴中市| 诸城市| 九江市| 买车| 类乌齐县| 东港市| 乌鲁木齐县| 天峨县| 萝北县| 嘉峪关市| 武城县| 黎平县| 乡城县| 察雅县| 昌江| 安乡县| 永善县| 丰顺县| 娄底市|