最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

實現(xiàn)php刪除鏈表中重復的結點

 更新時間:2018年09月27日 14:18:39   投稿:laozhang  
在本篇文章中,我們給大家?guī)砹岁P于php刪除鏈表中重復的結點的相關知識點內容以及相關代碼,有興趣的朋友們參考下。

刪除鏈表中重復的結點:

定義兩個指針pre和current

兩個指針同時往后移動,current指針如果與后一個結點值相同,就獨自往前走直到?jīng)]有相等的

pre指針next直接指向current指針的后一個,把相同的都跳過

pre=linkList
current=linkList
while current!=null
  if current->data==current->next->data
    value=current->data
    while value==current->next->data
      current=current->next
    pre->next=current->next
  pre=pre->next
  current=current->next
return linkList
<?php
class Node{
    public $data;
    public $next;
    public function __construct($data=""){
        $this->data=$data;
    }  
}
//構造一個帶重復的鏈表
$linkList=new Node();
$linkList->next=null;
$temp=$linkList;
$node1=new Node(2);
$temp->next=$node1;
$temp=$node1;
$node2=new Node(2);
$temp->next=$node2;
$temp=$node2;
$node3=new Node(3);
$temp->next=$node3;
$temp=$node3;
$node4=new Node(3);
$temp->next=$node4;
$temp=$node4;
$node5=new Node(4);
$temp->next=$node5;
$node5->next=null;
function deleteDuplication($pHead){
    $pre=$pHead->next;//當前都指向第一個結點
    $current=$pHead->next;//當前結點是第一個結點
    while($current!=null){
        //如果當前結點值和當前結點的下一個結點值相同
        if($current->next!=null && $current->data==$current->next->data){
            //保存當前結點值
            $val=$current->data;
            //當前結點往后移直到和下一個結點值不相等
            while($current->next!=null && $val==$current->next->data){
                $current=$current->next;
            }  
            //前一個指針next直接指向當前結點的next
            $pre->next=$current->next;
        }  
        //兩個指針同時后移
        $pre=$pre->next;
        $current=$current->next;
    }
    return $pHead;
}
var_dump($linkList);
$result=deleteDuplication($linkList);
var_dump($result);
object(Node)#1 (2) {
 ["data"]=>
 string(0) ""
 ["next"]=>
 object(Node)#2 (2) {
  ["data"]=>
  int(2)
  ["next"]=>
  object(Node)#3 (2) {
   ["data"]=>
   int(2)
   ["next"]=>
   object(Node)#4 (2) {
    ["data"]=>
    int(3)
    ["next"]=>
    object(Node)#5 (2) {
     ["data"]=>
     int(3)
     ["next"]=>
     object(Node)#6 (2) {
      ["data"]=>
      int(4)
      ["next"]=>
      NULL
     }
    }
   }
  }
 }
}
object(Node)#1 (2) {
 ["data"]=>
 string(0) ""
 ["next"]=>
 object(Node)#2 (2) {
  ["data"]=>
  int(2)
  ["next"]=>
  object(Node)#4 (2) {
   ["data"]=>
   int(3)
   ["next"]=>
   object(Node)#6 (2) {
    ["data"]=>
    int(4)
    ["next"]=>
    NULL
   }
  }
 }
}

以上就是實現(xiàn)php刪除鏈表中重復的結點的全部內容和代碼,感謝大家對腳本之家的支持。

相關文章

最新評論

高雄县| 海伦市| 四平市| 林口县| 石嘴山市| 乌拉特后旗| 台东县| 奉新县| 涿鹿县| 平和县| 韩城市| 磴口县| 普兰店市| 新化县| 公安县| 湖北省| 商丘市| 正安县| 伊宁市| 镇巴县| 环江| 永清县| 且末县| 普安县| 蒙自县| 安岳县| 清丰县| 屯留县| 绥滨县| 鹿泉市| 巫山县| 岢岚县| 乳山市| 嵊泗县| 安康市| 涟水县| 桐梓县| 香港| 法库县| 延津县| 义马市|