LeetCode:203.移除鏈表元素(C)

題目:刪除鏈表中等于給定值 val 的所有節(jié)點。
示例:
輸入: 1->2->6->3->4->5->6, val = 6
輸出: 1->2->3->4->5

解題思路:
1.不帶頭節(jié)點的鏈表,要首先處理頭節(jié)點;
2.要判斷頭節(jié)點是否為空,否則會報錯,顯示:訪問空結(jié)點。

代碼:

struct ListNode* removeElements(struct ListNode* head, int val){
      struct ListNode *p, *pre;          //不帶頭結(jié)點
      while(head)             //處理頭節(jié)點
      {
          if(head->val == val)
          {
              head = head->next;
          }
          else
              break;
      }
      if(head != NULL)           //防止訪問空指針
      {
          pre = head;
          p =pre->next;
          while(p)
          {
              if(p->val == val)
              {
                  pre->next = p->next;
                  p = pre->next;
              }
              else
              {
                  pre = p;
                  p = pre->next;
              }
          }
      }
      return head;

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容