刪除鏈表中的節點--鏈表


題目

請編寫一個函數,使其可以刪除某個鏈表中給定的(非末尾)節點,你將只被給定要求被刪除的節點。

現有一個鏈表 -- head = [4,5,1,9],它可以表示為:

 

 

 示例 1:

輸入: head = [4,5,1,9], node = 5 輸出: [4,1,9]
解釋: 給定你鏈表中值為 5 的第二個節點,那么在調用了你的函數之后,該鏈表應變為 4 -> 1 -> 9.

 示例 2:

輸入: head = [4,5,1,9], node = 1 輸出: [4,5,9]
解釋: 給定你鏈表中值為 1 的第三個節點,那么在調用了你的函數之后,該鏈表應變為 4 -> 5 -> 9.

說明:

  • 鏈表至少包含兩個節點。
  • 鏈表中所有節點的值都是唯一的。
  • 給定的節點為非末尾節點並且一定是鏈表中的一個有效節點。
  • 不要從你的函數中返回任何結果。

public void deleteNode(ListNode node) 題目只給了一個參數

 

思想

首先要明白題目的意思,題目的意思,這個題目是閱讀理解,題目的意思是刪除鏈表中的節點,刪除節點,意思是這個節點可以不要了

* @param node 題目給的是刪除節點,那說明這個節點可以舍棄了,我們把下一個節點的值拷貝給當前要刪除的節點,再刪除下一個節點。

* 大致過程如下(刪除3):

* 1->2->3->4->5

* 1->2->4->4->5

* 1->2->4->5 */

代碼

public void deleteNode(ListNode node) {
    if (node == null) {
        return;
    }
    node.val = node.next.val;
    node.next = node.next.next;
}

 

結果

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM