明霞山资源网 Design By www.htccd.com
删除链表中重复的结点:
定义两个指针pre和current
两个指针同时往后移动,current指针如果与后一个结点值相同,就独自往前走直到没有相等的
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
<""){
$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
}
}
}
}
以上就是实现php删除链表中重复的结点的全部内容和代码,感谢大家对的支持。
标签:
php,重复结点
明霞山资源网 Design By www.htccd.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
明霞山资源网 Design By www.htccd.com
暂无评论...
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。