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

首頁 > 系統 > Linux > 正文

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

2019-10-26 18:37:22
字體:
來源:轉載
供稿:網友
問題如下
輸入:鏈表 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);
}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 大埔区| 东阳市| 清水河县| 侯马市| 尚义县| 宜川县| 泾川县| 监利县| 武山县| 山阳县| 台州市| 安阳市| 贵阳市| 那曲县| 杂多县| 太原市| 高陵县| 瑞丽市| 台北市| 彭泽县| 阿鲁科尔沁旗| 海兴县| 绿春县| 永州市| 安徽省| 城固县| 南木林县| 鲁甸县| 河曲县| 千阳县| 文安县| 盐山县| 元氏县| 内黄县| 宁国市| 郯城县| 永州市| 宁都县| 门头沟区| 彭水| 鹿邑县|