大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節(jié)點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 單鏈表刪除節(jié)點的方法

單鏈表刪除節(jié)點的方法

更新時間:2022-09-01 10:26:32 來源:動力節(jié)點 瀏覽1253次

從鏈表中刪除給定節(jié)點。

例子

鏈表:102030無效的

輸入

20

輸出

1030無效的

輸入

30

輸出

1020無效的

算法

1.如果頭節(jié)點有給定的key,

使頭節(jié)點指向第二個節(jié)點并釋放其內(nèi)存。

2. 否則,

從當前節(jié)點,檢查下一個節(jié)點是否有給定的key

如果是,則使 current->next = current->next->next 并釋放內(nèi)存。

否則,將當前節(jié)點更新為下一個節(jié)點并執(zhí)行上述過程(從步驟 2 開始)直到最后一個節(jié)點。

頭節(jié)點具有給定的密鑰

void  deleteNode ( struct node ** head, int key)
{
      //temp用于釋放內(nèi)存
      struct node * temp;     
      //在頭節(jié)點上找到的鍵。
      //移動到頭節(jié)點到下一個并釋放頭。
      if ( * head -> data == key)
      {
          溫度=  *頭;    //備份head以釋放內(nèi)存
          * head = ( * head) -> next;
          免費(臨時);
      }    
}

視覺表現(xiàn)

讓我們刪除數(shù)據(jù) 10(頭節(jié)點)。

對于其他節(jié)點(Non-Head)

void  deleteNode ( struct node ** head, int key)
{
      //temp用于釋放內(nèi)存
      struct node * temp;
      //在頭節(jié)點上找到的鍵。
      //移動到頭節(jié)點到下一個并釋放頭。
      如果((*頭)->數(shù)據(jù)==鍵)
      {
          溫度=  *頭;    //備份釋放內(nèi)存
          * head = ( * head) -> next;
          免費(臨時);
      }      
      別的
      {
          結(jié)構(gòu)節(jié)點*當前  =  *頭;
          而(當前->下一個!=  NULL)
          {
              //如果是,我們需要刪除當前->下一個節(jié)點
              if (current -> next -> data == key)
              {
                  臨時=當前->下一個;
                  //節(jié)點將與鏈表斷開連接。
                  當前->下一個=當前->下一個->下一個;
                  免費(臨時);
                  休息;
              }
              //否則,移動當前節(jié)點并繼續(xù)
              else 
                  current = current -> next;
          }
      }    
}

視覺表現(xiàn)

讓我們刪除數(shù)據(jù) 20

刪除鏈表中節(jié)點的實現(xiàn)

例子

#include<stdio.h> 
#include<stdlib.h>
結(jié)構(gòu)節(jié)點
{
    整數(shù)數(shù)據(jù);
    結(jié)構(gòu)節(jié)點*下一個;
};
void  addLast ( struct node ** head, int val)
{
    //創(chuàng)建一個新節(jié)點
    struct node * newNode = malloc( sizeof ( struct node));
    新節(jié)點->數(shù)據(jù)= val;
    新節(jié)點->下一個     =  NULL ;
    //如果head為NULL,它是一個空列表
    if ( * head ==  NULL )
          * head = newNode;
    //否則,找到最后一個節(jié)點,添加newNode 
    else
    {
        結(jié)構(gòu)節(jié)點* lastNode =  *頭;
        //最后一個節(jié)點的下一個地址將為NULL。
        while (lastNode -> next !=  NULL )
        {
            最后一個節(jié)點=最后一個節(jié)點->下一個;
        }
        //在鏈表末尾添加newNode 
        lastNode -> next = newNode;
    }
}
void  deleteNode ( struct node ** head, int key)
{
      //temp用于釋放內(nèi)存
      struct node * temp;
      //在頭節(jié)點上找到的鍵。
      //移動到頭節(jié)點到下一個并釋放頭。
      如果((*頭)->數(shù)據(jù)==鍵)
      {
          溫度=  *頭;    //備份釋放內(nèi)存
          * head = ( * head) -> next;
          免費(臨時);
      }
      別的
      {
          結(jié)構(gòu)節(jié)點*當前  =  *頭;
          而(當前->下一個!=  NULL)
          {
              //如果是,我們需要刪除當前->下一個節(jié)點
              if (current -> next -> data == key)
              {
                  臨時=當前->下一個;
                  //節(jié)點將與鏈表斷開連接。
                  當前->下一個=當前->下一個->下一個;
                  免費(臨時);
                  休息;
              }
              //否則,移動當前節(jié)點并繼續(xù)
              else 
                  current = current -> next;
          }
      }
}
無效 打印列表(結(jié)構(gòu)節(jié)點*頭)
{
    結(jié)構(gòu)節(jié)點*溫度=頭;
    //迭代整個鏈表并打印數(shù)據(jù)
    while (temp !=  NULL )
    {
         printf( "%d ->" , temp -> data);
         溫度=溫度->下一個;
    }
    printf( "NULL \n " );
}
主函數(shù) ()
{
     結(jié)構(gòu)節(jié)點*頭=  NULL ;
     addLast( &頭, 10 );
     addLast( &頭, 20 );
     addLast( &頭, 30 );
     printf( "鏈表元素:\n " );
     打印列表(頭);
     //刪除第一個節(jié)點
     deleteNode( & head, 10 );
     printf( "刪除10.新鏈表:\n " );
     打印列表(頭);
     //刪除最后一個節(jié)點
     deleteNode( & head, 30 );
     printf( "刪除 30. 新鏈表:\n " );
     打印列表(頭);
     //刪除 20 
     deleteNode( & head, 20 );
     printf( "已刪除 20. 新鏈表:\n " );
     打印列表(頭);
     返回 0 ;
}

 

提交申請后,顧問老師會電話與您溝通安排學(xué)習(xí)

免費課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: h片网站在线观看 | 成人99| 色妞在线 | 欧美一区二区三区影院 | 欧美亚洲国产激情一区二区 | 亚洲成年人视频 | 视频在线亚洲 | 亚洲精品日韩在线一区 | 亚洲91在线 | 久草在线观看福利 | 日韩欧美视频一区二区在线观看 | 欧美男女爱爱视频 | 日本人一级毛片免费视频 | 一级毛片免费播放视频 | 国产精品久久精品福利网站 | 一级毛片一级毛片 | 57pao一国产成视频永久免费 | 免费欧洲毛片a级视频老妇女 | 99国产精品欧美久久久久久影院 | 国产伦精品一区二区三区在线观看 | 一区在线免费观看 | 天天操欧美 | 亚洲国产精品久久久久久 | 国产精品青青青高清在线密亚 | f性欧美| 欧美日本高清视频在线观看 | 一区二区三区美女视频 | 欧美一级毛片特黄黄 | www.九色| 免费网站啪啪大全 | 台湾一级毛片免费播放 | 黑人巨大精品战中国美女 | 日本黄页网站在线观看 | 草久久免费视频 | 4399一级成人毛片 | 又爽又黄又无遮挡的视频在线观看 | 中文字幕在线视频免费观看 | 亚洲日本欧美日韩高观看 | 全免费毛片在线播放 | 青青青在线视频国产 | 特级全黄一级毛片视频 |