一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Java輸出鏈表倒數第k個節點

Java輸出鏈表倒數第k個節點

2021-01-19 10:49lilivian Java教程

這篇文章主要介紹了Java輸出鏈表倒數第k個節點的相關內容,涉及三種設計思路及代碼示例,具有一定參考價值,需要的朋友可以了解下。

問題描述

輸入一個鏈表,輸出該鏈表中倒數第k個結點。(尾結點是倒數第一個)

結點定義如下:

?
1
2
3
4
5
6
7
8
public class ListNode {
  int val;
  ListNode next = null;
 
  ListNode(int val) {
    this.val = val;
  }
}

思路1:

先遍歷鏈表,計算其長度length;
然后計算出倒數第k個結點就是正數第length - k + 1.
最后再遍歷鏈表,找到所求結點
時間復雜度O(2n),需要遍歷兩次鏈表

代碼如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
public ListNode FindKthToTail(ListNode head,int k) {
    if(head == null || k <= 0){
      return null;
    }
    //直接遍歷
    ListNode p = head;
    int length = 1;
    while(p.next != null){
      length++;
      p = p.next;
    }
    int index = length - k + 1;
    if(index <= 0){
      return null;
    }
    p = head;
    int num = 1;
    while(p.next != null && num < index){
      num++;
      p = p.next;
    }
    if(num < index){
      return null;
    }else{
      return p;
    }
  }

思路2:

期待只遍歷鏈表一次就能得到。
設置兩個指針,一個初始化指向第一個結點,第二個指向第k個結點。然后兩個指針同步向后移動,當第二個指向尾結點時,第一個指針即指向了倒數第k個結點

代碼:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public ListNode FindKthToTail(ListNode head,int k) {
    if(head == null || k <= 0){
      return null;
    }
    //直接遍歷
    ListNode p = head;
    ListNode q = head;
    for(int i = 0; i < k-1; i++){
      if(q == null){
        return null;
      }
      q = q.next;
    }
    if(q == null){
      return null;
    }
    while(q.next != null){
      p = p.next;
      q = q.next;
    }
    return p;
  }

思路3:

將鏈表反轉,那么原問題就變為求正數第k個結點。
然而這改變了原本的鏈表,且并不會比思路2更高效

鏈表反轉:參考《Java語言實現反轉鏈表代碼示例

總結

以上就是本文關于Java輸出鏈表倒數第k個節點的全部內容,如有不足之處,歡迎留言指出,小編一定及時更正,給大家更好的閱讀體驗和幫助,感謝朋友們對本站的支持!

原文鏈接:http://blog.csdn.net/lilianforever/article/details/51839755

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 久久理论片| 波多野结衣在线观看中文字幕 | 农村妇女野战bbxxx | 国产成人福利免费视频 | 思久久 | 日韩色图区 | 国产精品调教 | 亚洲区在线播放 | 亚洲高清在线天堂精品 | 四虎论坛 | 亚洲色图欧美色 | 国产精品视频一区二区三区经 | 国产高清不卡视频在线播放 | 日韩福利网站 | 涩涩漫画免费 | 亚洲第一男人天堂 | 午夜一级影院 | 亚洲欧美日韩在线观看看另类 | 歪歪漫画a漫入口 | 无码国产成人午夜在线观看不卡 | 999热这里全都是精品 | chinesegay黑袜玩奴 | 我们中文在线观看免费完整版 | 青草福利视频 | 99热久久这里只精品国产www | 高跟丝袜麻麻求我调教 | a毛片免费全部在线播放毛 a级在线看 | 91高清国产经典在线观看 | 九色PORNY蝌蚪视频首页 | 欧美精品国产一区二区三区 | 边摸边操 | 日韩成人免费 | 日本三级免费看 | 91chinese 永久免费 | 好爽轻点太大了太深了 | 黑人粗长巨茎小说 | 国产日韩免费视频 | 美女尿口照片 | 色中色导航 | eeuss免费快捷 | 亚洲AV久久无码精品九号 |