日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

python 链表倒数第k个节点_链表-删除单链表中倒数第k个节点

發布時間:2023/12/3 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python 链表倒数第k个节点_链表-删除单链表中倒数第k个节点 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目

實現一個函數,一個可以刪除單鏈表中倒數第k個節點


難度

簡單


分析

本題比較簡單,實現方法多種多樣,這里提供一種方法

首先明確一點,在單鏈表中刪除倒數第k個節點,需要找到他的前一個節點,讓前一個節點指向后一個節點即可。

  • 如果鏈表為空,或者是k小于1直接返回即可。
  • 除此之外從鏈表頭走到尾,沒移動一步,就讓k的值減1。

下面來分析具體的過程:

  • 鏈表1 -> 2 -> 3, k=4 , 鏈表不存在倒數第四個節點。
  • 走過的節點為:1 ,2 ,3
  • k的變化:3, 2, 1
  • 鏈表1 -> 2 -> 3, k=3 , 鏈表倒數第三個節點,就是第一個節點。
  • 走過的節點為:1 ,2 ,3
  • k的變化:2, 1, 0
  • 鏈表1 -> 2 -> 3, k=2 , 鏈表倒數第三個節點,就是第2個節點。
  • 走過的節點為:1 ,2 ,3
  • k的變化:1, 0, -1

由上可知,當鏈表移動帶尾部是,一共有三種情況:

  • 當k大于0的時候,說明沒有倒數第k個節點,直接返回原來鏈表即可
  • 當k等于0的時候,說明頭節點就是倒數第k個節點
  • 當k小于0的時候,具體如下:
    • 重頭重新遍歷鏈表,每走一步k加1
    • 當k等于0的時候就停止,因為這個節點就是要刪除節點的前一個節點。(這也容易理解,如鏈表1 -> 2 -> 3, k=2,鏈表的長度為 n=3。此時 3-2=1,正好是2的前一個節點)

    Java代碼實現

    public Node removeLastKthNode(Node head, int k){if(head == null || k < 1) return head;Node cur = head;while(cur != null){k--;cur = cur.next;}if(k == 0) head = head.next;if(k < 0){cur = head;while(++k != 0){cur = cur.next;}cur.next = cur.next.next;}return head; }

    加油鴨!!!

    點贊沖!!!

    總結

    以上是生活随笔為你收集整理的python 链表倒数第k个节点_链表-删除单链表中倒数第k个节点的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。