欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java實(shí)現(xiàn)單鏈表倒轉(zhuǎn)的方法

 更新時間:2022年05月05日 10:40:20   作者:fb0122  
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)單鏈表倒轉(zhuǎn)的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下

java中有關(guān)單鏈表反轉(zhuǎn)的方法有很多種,這里記錄一種并附上詳細(xì)步驟:

代碼如下

/**
?* Definition for singly-linked list.
?* public class ListNode {
?* ? ? int val;
?* ? ? ListNode next;
?* ? ? ListNode(int x) { val = x; }
?* }
?*/
public class Solution {
? ? public ListNode reverseList(ListNode head) {?
? ? ? ? ListNode pre;
? ? ? ? ListNode temp;
? ? ? ? pre = head; // 前驅(qū)節(jié)點(diǎn)
? ? ? ? ListNode cur = head.next //當(dāng)前節(jié)點(diǎn)

? ? ? ? while(cur != null && cur.next != null){
? ? ? ? ? ? temp = cur.next; ? ?//(1)
? ? ? ? ? ? cur.next = pre; ? ? ? ?//(2)
? ? ? ? ? ? pre = cur; ? ? //(3)
? ? ? ? ? ? cur = temp; ? ? ? ? ?//(4)

? ? ? ? }
? ? ? ? head.next = null //原頭節(jié)點(diǎn),反轉(zhuǎn)后尾節(jié)點(diǎn)
? ? ? ? return pre; ? //原尾節(jié)點(diǎn) ?反轉(zhuǎn)后頭節(jié)點(diǎn)
? ? }
}

主要的操作是在while循環(huán)中,下面畫圖解釋一下是如何實(shí)現(xiàn)單鏈表倒轉(zhuǎn)的:
首先java中沒有指針的概念,但是可以看到ListNode中的next屬性其實(shí)就代表指向下一個節(jié)點(diǎn)的“指針”,因此可以這樣來理解:

1、原單鏈表:

假設(shè)單鏈表有三個元素[1,2,3],0為上述的頭對象

2、執(zhí)行(1)、(2)后:

cur.next指向了n.next:

3、執(zhí)行(3):

4、執(zhí)行(4):

第一次循環(huán)結(jié)束,第一次循環(huán)后的單鏈表如上圖所示。
cur != null && cur.next != null,因此執(zhí)行第二次循環(huán):

5、第二次執(zhí)行(1),(2):

6、第二次執(zhí)行(3):

7、第二次執(zhí)行(4):

cur.next == null 推出循環(huán)
以上,實(shí)現(xiàn)單鏈表的倒轉(zhuǎn)。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • idea ssm項(xiàng)目java程序使用十六進(jìn)制rxtx包向串口發(fā)送指令的方法

    idea ssm項(xiàng)目java程序使用十六進(jìn)制rxtx包向串口發(fā)送指令的方法

    這篇文章主要介紹了idea ssm項(xiàng)目java程序向串口發(fā)送指令并且使用十六進(jìn)制 rxtx包,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-08-08
  • Java注解詳細(xì)介紹

    Java注解詳細(xì)介紹

    這篇文章主要介紹了Java注解詳細(xì)介紹,本文講解了Java注解是什么、Java注解基礎(chǔ)知識、Java注解類型、定義Java注解類型的注意事項(xiàng)等內(nèi)容,需要的朋友可以參考下
    2014-09-09
  • 淺析 Java多線程

    淺析 Java多線程

    這篇文章主要介紹了Java多線程的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)Java線程相關(guān)知識,感興趣的朋友可以了解下
    2020-09-09
  • Springboot內(nèi)置tomcat配置虛擬路徑過程解析

    Springboot內(nèi)置tomcat配置虛擬路徑過程解析

    這篇文章主要介紹了Springboot內(nèi)置tomcat配置虛擬路徑過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-04-04
  • 使用注解@Recover優(yōu)化丑陋的循環(huán)詳解

    使用注解@Recover優(yōu)化丑陋的循環(huán)詳解

    我們知道在實(shí)現(xiàn)一個功能的時候是可以使用不同的代碼來實(shí)現(xiàn)的,那么相應(yīng)的不同實(shí)現(xiàn)方法的性能肯定也是有差別的,下面這篇文章主要給大家介紹了關(guān)于使用注解@Recover優(yōu)化丑陋的循環(huán)的相關(guān)資料,需要的朋友可以參考下
    2022-04-04
  • JAVA基本類型包裝類 BigDecimal BigInteger 的使用

    JAVA基本類型包裝類 BigDecimal BigInteger 的使用

    Java 中預(yù)定義了八種基本數(shù)據(jù)類型,包括:byte,int,long,double,float,boolean,char,short,接下來文章小編將向大家介紹其中幾個類型的內(nèi)容,需要的朋友可以參考下文章
    2021-09-09
  • 關(guān)于springboot 配置date字段返回時間戳的問題

    關(guān)于springboot 配置date字段返回時間戳的問題

    這篇文章主要介紹了springboot 配置date字段返回時間戳的問題,在springboot2.0后,spring會將Date字段自動給轉(zhuǎn)成UTC字符串了(在沒有配置的情況下),所以date需要轉(zhuǎn)換成時間戳還是yyyy-MM-dd HH:mm:ss,具體解決方法跟隨小編一起看看吧
    2021-07-07
  • 再也不用怕! 讓你徹底搞明白Java內(nèi)存分布

    再也不用怕! 讓你徹底搞明白Java內(nèi)存分布

    做Java的大都沒有c++ 的那種分配內(nèi)存的煩惱,因?yàn)镴ava 幫我們管理內(nèi)存,但是這并不代表我們不需要了解Java的內(nèi)存結(jié)構(gòu),因?yàn)榫€上經(jīng)常出現(xiàn)內(nèi)存的問題,今天聊一下內(nèi)存的問題,需要的朋友可以參考下
    2021-06-06
  • 詳解java實(shí)現(xiàn)遍歷二叉樹的三種情況

    詳解java實(shí)現(xiàn)遍歷二叉樹的三種情況

    這篇文章主要介紹了java實(shí)現(xiàn)遍歷二叉樹的三種情況,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-04-04
  • Java8的Lambda遍歷兩個List匹配數(shù)據(jù)方式

    Java8的Lambda遍歷兩個List匹配數(shù)據(jù)方式

    這篇文章主要介紹了Java8的Lambda遍歷兩個List匹配數(shù)據(jù)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03

最新評論