国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語(yǔ)言|JavaScript|易語(yǔ)言|vb.net|

香港云服务器
服務(wù)器之家 - 編程語(yǔ)言 - Java教程 - Java輸出鏈表倒數(shù)第k個(gè)節(jié)點(diǎn)

Java輸出鏈表倒數(shù)第k個(gè)節(jié)點(diǎn)

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

這篇文章主要介紹了Java輸出鏈表倒數(shù)第k個(gè)節(jié)點(diǎn)的相關(guān)內(nèi)容,涉及三種設(shè)計(jì)思路及代碼示例,具有一定參考價(jià)值,需要的朋友可以了解下。

問(wèn)題描述

輸入一個(gè)鏈表,輸出該鏈表中倒數(shù)第k個(gè)結(jié)點(diǎn)。(尾結(jié)點(diǎn)是倒數(shù)第一個(gè))

結(jié)點(diǎn)定義如下:

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

思路1:

先遍歷鏈表,計(jì)算其長(zhǎng)度length;
然后計(jì)算出倒數(shù)第k個(gè)結(jié)點(diǎn)就是正數(shù)第length - k + 1.
最后再遍歷鏈表,找到所求結(jié)點(diǎn)
時(shí)間復(fù)雜度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:

期待只遍歷鏈表一次就能得到。
設(shè)置兩個(gè)指針,一個(gè)初始化指向第一個(gè)結(jié)點(diǎn),第二個(gè)指向第k個(gè)結(jié)點(diǎn)。然后兩個(gè)指針同步向后移動(dòng),當(dāng)?shù)诙€(gè)指向尾結(jié)點(diǎn)時(shí),第一個(gè)指針即指向了倒數(shù)第k個(gè)結(jié)點(diǎn)

代碼:

?
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:

將鏈表反轉(zhuǎn),那么原問(wèn)題就變?yōu)榍笳龜?shù)第k個(gè)結(jié)點(diǎn)。
然而這改變了原本的鏈表,且并不會(huì)比思路2更高效

鏈表反轉(zhuǎn):參考《Java語(yǔ)言實(shí)現(xiàn)反轉(zhuǎn)鏈表代碼示例

總結(jié)

以上就是本文關(guān)于Java輸出鏈表倒數(shù)第k個(gè)節(jié)點(diǎn)的全部?jī)?nèi)容,如有不足之處,歡迎留言指出,小編一定及時(shí)更正,給大家更好的閱讀體驗(yàn)和幫助,感謝朋友們對(duì)本站的支持!

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

延伸 · 閱讀

精彩推薦
1104
主站蜘蛛池模板: 91中文字幕在线观看 | 玖玖精品在线 | 日本乱偷中文字幕 | 欧美在线 | 国产天天操 | 欧美精品久久久 | 午夜在线 | 人人爱超碰 | 久久精品国产一区二区三区 | 久久精品亚洲成在人线av网址 | 久久精品视频网站 | 毛片视频免费 | 天堂在线中文字幕 | 青青草在线视频免费观看 | 黄毛片 | 污视频在线观看免费 | 欧美一区二区三区久久久久久桃花 | 欧美在线不卡 | 有码在线 | 日本一区二区在线播放 | 国内精品视频 | 日韩三级在线观看 | 视频一区在线 | 日韩av一区二区在线观看 | 午夜激情视频在线观看 | 日韩精品久久久 | 日韩精品一区二区三区丰满 | 一区二区视频 | 久久国产免费 | 国产黄色在线观看 | 亚洲国产精品久久久久 | 国产黄色大片免费在线观看 | 亚洲一区二区三区高清 | 亚洲电影第二页 | 中文字幕乱码一区二区三区 | 日韩不卡一二三 | 成年免费视频 | 美女搞黄网站 | 中文视频在线 | av丁香| 欧美视频一区二区三区 |