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

Java面試題-實現(xiàn)復(fù)雜鏈表的復(fù)制代碼分享

 更新時間:2017年10月16日 10:53:54   作者:diu_brother  
這篇文章主要介紹了Java面試題-實現(xiàn)復(fù)雜鏈表的復(fù)制代碼分享,小編覺得還是挺不錯的,具有參考價值,需要的朋友可以了解下。

阿里終面在線編程題,寫出來與大家分享一下

        有一個單向鏈表,每個節(jié)點都包含一個random指針,指向本鏈表中的某個節(jié)點或者為空,寫一個深度拷貝函數(shù),拷貝整個鏈表,包括random指針。盡可能考慮可能的異常情況。

算法如下:

/*
public class RandomListNode {
  int label;
  RandomListNode next = null;
  RandomListNode random = null;
  RandomListNode(int label) {
    this.label = label;
  }
}
*/
public class Solution {
  public RandomListNode Clone(RandomListNode pHead)
  {
    copyNodes(pHead);
    setClonedNodes(pHead);
    return splitNodes(pHead);
  }
    //第一步,復(fù)制鏈表任意結(jié)點N并創(chuàng)建新結(jié)點N‘,再把N'鏈接到N的后面
   public static void copyNodes(RandomListNode head){ 
    RandomListNode temp = head;
    while(temp!=null){
     RandomListNode clonedNode = new RandomListNode(0);
     clonedNode.next = temp.next;
     clonedNode.label = temp.label;
     clonedNode.random = null;
     temp.next = clonedNode;
     temp = clonedNode.next;
    }
   }
   //第二步,設(shè)置復(fù)制出來的結(jié)點
   public static void setClonedNodes(RandomListNode head){
    RandomListNode pNode = head;
    while(pNode!=null){
     RandomListNode pCloned = pNode.next;
     if(pNode.random!=null){
      pCloned.random = pNode.random.next; 
     }
     pNode = pCloned.next;
    }
   }
   //第三步,將第二步得到的鏈表拆分成兩個鏈表
   public static RandomListNode splitNodes(RandomListNode head){
    RandomListNode pNode = head;
    RandomListNode clonedHead = null;
    RandomListNode clonedNode = null;
    if(pNode!=null){
     clonedHead = pNode.next;
     clonedNode = pNode.next;
     pNode.next = clonedNode.next;
     pNode = pNode.next;
    }
    while(pNode!=null){
     clonedNode.next = pNode.next;
     clonedNode = clonedNode.next;
     pNode.next = clonedNode.next;
     pNode = pNode.next;
    }
    return clonedHead;
   }
}

總結(jié)

以上就是本文關(guān)于Java面試題-實現(xiàn)復(fù)雜鏈表的復(fù)制代碼分享的全部內(nèi)容,感興趣的朋友可以繼續(xù)參閱:Java輸出鏈表倒數(shù)第k個節(jié)點、Java語言實現(xiàn)反轉(zhuǎn)鏈表代碼示例、Java編程實現(xiàn)從尾到頭打印鏈表代碼實例以及本站其他相關(guān)專題,希望對大家有所幫助。如有不足之處,歡迎留言指出,小編一定及時更正,給大家提供更好的閱讀體驗及幫助,感謝朋友們對本站的支持!

相關(guān)文章

  • Java中的任務(wù)調(diào)度框架quartz詳細解析

    Java中的任務(wù)調(diào)度框架quartz詳細解析

    這篇文章主要介紹了Java中的任務(wù)調(diào)度框架quartz詳細解析,Quartz 是一個完全由 Java 編寫的開源作業(yè)調(diào)度框架,為在 Java 應(yīng)用程序中進行作業(yè)調(diào)度提供了簡單卻強大的機制,需要的朋友可以參考下
    2023-11-11
  • 2024.1.2 安裝JDK和Eclipse并配置java編譯環(huán)境的過程

    2024.1.2 安裝JDK和Eclipse并配置java編譯環(huán)境的過程

    這篇文章主要介紹了2024.1.2 安裝JDK和Eclipse并配置java編譯環(huán)境,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2024-01-01
  • java maven中如何引入自己的lib

    java maven中如何引入自己的lib

    在JavaMaven項目中引入自己的庫可以簡化為幾個步驟:首先,確保庫以JAR格式存在或打包成JAR;其次,將JAR文件放置在項目目錄或安裝到本地Maven倉庫;最后,在pom.xml中添加依賴,這樣做可以使項目更加模塊化,便于管理和維護,感興趣的朋友跟隨小編一起看看吧
    2024-09-09
  • Java數(shù)據(jù)結(jié)構(gòu)之Map與Set專篇講解

    Java數(shù)據(jù)結(jié)構(gòu)之Map與Set專篇講解

    這篇文章通過實例面試題目來講解Java中Map和Set之間的關(guān)系,具有很好的參考價值,Map與Set在面試中經(jīng)常會遇到。一起跟隨小編過來看看吧
    2022-01-01
  • SpringBoot實現(xiàn)MapperScan添加動態(tài)配置(占位符)

    SpringBoot實現(xiàn)MapperScan添加動態(tài)配置(占位符)

    這篇文章主要介紹了SpringBoot實現(xiàn)MapperScan添加動態(tài)配置(占位符),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教。
    2022-01-01
  • java多線程數(shù)據(jù)分頁處理實例講解

    java多線程數(shù)據(jù)分頁處理實例講解

    在本篇內(nèi)容里小編給大家分享了一篇關(guān)于java多線程數(shù)據(jù)分頁處理實例講解內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。
    2021-01-01
  • Java之Springcloud Gateway內(nèi)置路由案例講解

    Java之Springcloud Gateway內(nèi)置路由案例講解

    這篇文章主要介紹了Java之Springcloud Gateway內(nèi)置路由案例講解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • mac下idea的svn密碼記不住的問題及處理方法

    mac下idea的svn密碼記不住的問題及處理方法

    這篇文章主要介紹了mac下idea的svn密碼記不住的問題及處理方法,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-09-09
  • Java如何使用itext向PDF插入數(shù)據(jù)和圖片

    Java如何使用itext向PDF插入數(shù)據(jù)和圖片

    最近項目中使用到Java實現(xiàn)寫入PDF文件,這篇文章主要給大家介紹了關(guān)于Java如何使用itext向PDF插入數(shù)據(jù)和圖片的相關(guān)資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-01-01
  • Lambda表達式的使用及注意事項

    Lambda表達式的使用及注意事項

    這篇文章主要介紹了Lambda表達式的使用及注意事項,主要圍繞?Lambda表達式的省略模式?Lambda表達式和匿名內(nèi)部類的區(qū)別的相關(guān)內(nèi)容展開詳情,感興趣的小伙伴可以參考一下
    2022-06-06

最新評論