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

Java編程刪除鏈表中重復(fù)的節(jié)點(diǎn)問題解決思路及源碼分享

 更新時(shí)間:2017年10月16日 10:01:00   作者:sniperken  
這篇文章主要介紹了Java編程刪除鏈表中重復(fù)的節(jié)點(diǎn)問題解決思路及源碼分享,具有一定參考價(jià)值,這里分享給大家,供需要的朋友了解。

一. 題目

在一個(gè)排序的鏈表中,存在重復(fù)的結(jié)點(diǎn),請刪除該鏈表中重復(fù)的結(jié)點(diǎn),重復(fù)的結(jié)點(diǎn)不保留,返回鏈表頭指針。

二. 例子

輸入鏈表:1->2->3->3->4->4->5
處理后為:1->2->5

三. 思路

個(gè)人感覺這題關(guān)鍵是注意指針的指向,可以定義一個(gè)first對象(值為-1,主要用于返回操作后的鏈表),first.next指向head,定義一個(gè)last同樣指向first(主要用于操作記錄要?jiǎng)h除節(jié)點(diǎn)的前一個(gè)節(jié)點(diǎn)),定義一個(gè)p指向head,指向當(dāng)前節(jié)點(diǎn)。

操作流程:

①先判斷當(dāng)前p指向與p.next指向是否為空,為空則進(jìn)入⑤,不為空進(jìn)入②;
②判斷當(dāng)前節(jié)點(diǎn)p的值與與p.next的值是否相等,如果相等,進(jìn)入③,不相等,進(jìn)入④
③記錄p.val的值為val,循環(huán)判斷val是否與當(dāng)前p指向相等,相等的話p = p.next,last.next指向p;
④last指向p,p指向p.next;
⑤返回first.next;

四. 程序源碼

class ListNode { 
  int val; 
  ListNode next = null; 
  ListNode(int val) { 
    this.val = val; 
  } 
} 
public class Solution { 
  public ListNode deleteDuplication(ListNode pHead) 
  { 
    ListNode first = new ListNode(-1); 
    first.next = pHead; 
    ListNode last = first; 
    ListNode p = pHead; 
    while(p!=null&&p.next!=null){ 
      if(p.val==p.next.val){ 
        int val = p.val; 
        while(p!=null&&p.val==val){ 
          p = p.next; 
        last.next = p; 
        } 
      }else{ 
        last = p; 
        p = p.next; 
      } 
    } 
    return first.next; 
  } 
}

總結(jié)

以上就是本文關(guān)于Java編程刪除鏈表中重復(fù)的節(jié)點(diǎn)問題解決思路及源碼分享的全部內(nèi)容,感興趣的朋友可以參閱:Java編程實(shí)現(xiàn)從尾到頭打印鏈表代碼實(shí)例、Spring boot jpa 刪除數(shù)據(jù)和事務(wù)管理的問題實(shí)例詳解、MySQL刪除表數(shù)據(jù)的方法以及本站其他相關(guān)專題,希望對大家有所幫助。如有不足之處,歡迎留言指出!感謝朋友們的閱讀。

相關(guān)文章

  • Java使用遞歸法解決漢諾塔問題的代碼示例

    Java使用遞歸法解決漢諾塔問題的代碼示例

    這篇文章主要介紹了Java使用遞歸法解決漢諾塔問題的代碼示例,漢諾塔問題是使用遞歸解決問題的經(jīng)典范例,用到的算法非常簡單,需要的朋友可以參考下
    2016-04-04
  • java中四種操作xml方式的比較

    java中四種操作xml方式的比較

    本文主要介紹了java中四種操作xml的方式并對它們進(jìn)行比較分析。具有很好的參考價(jià)值。下面跟著小編一起來看下吧
    2017-03-03
  • java中ThreadLocal的基本原理

    java中ThreadLocal的基本原理

    本文講解了java中ThreadLocal的一些基本原理,文中關(guān)于ThreadLocal的原理講解的非常詳細(xì),感興趣的朋友一起看看吧
    2021-08-08
  • Spring Retry 重試實(shí)例詳解

    Spring Retry 重試實(shí)例詳解

    這篇文章主要介紹了Spring Retry 重試,使用方式有兩種分別是命令式和聲明式,本文通過實(shí)例代碼給大家詳細(xì)講解,需要的朋友可以參考下
    2022-10-10
  • springboot 2.0 mybatis mapper-locations掃描多個(gè)路徑的實(shí)現(xiàn)

    springboot 2.0 mybatis mapper-locations掃描多個(gè)路徑的實(shí)現(xiàn)

    這篇文章主要介紹了springboot 2.0 mybatis mapper-locations掃描多個(gè)路徑的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • Java struts2請求源碼分析案例詳解

    Java struts2請求源碼分析案例詳解

    這篇文章主要介紹了Java struts2請求源碼分析案例詳解,本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • Spring實(shí)現(xiàn)在非controller中獲取request對象

    Spring實(shí)現(xiàn)在非controller中獲取request對象

    這篇文章主要介紹了Spring實(shí)現(xiàn)在非controller中獲取request對象方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • 如何基于FTP4J實(shí)現(xiàn)FTPS連接過程解析

    如何基于FTP4J實(shí)現(xiàn)FTPS連接過程解析

    這篇文章主要介紹了如何基于FTP4J實(shí)現(xiàn)FTPS連接過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-10-10
  • 源碼解析Java類加載器

    源碼解析Java類加載器

    這篇文章主要給大家介紹了Java類加載器源碼解析的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • Java求出任意數(shù)字的各個(gè)位數(shù)之和方式

    Java求出任意數(shù)字的各個(gè)位數(shù)之和方式

    這篇文章主要介紹了Java求出任意數(shù)字的各個(gè)位數(shù)之和方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-01-01

最新評(píng)論