php实现删除链表中重复的节点
2024-08-31 18:14:55
php实现删除链表中重复的节点
一、总结
二、php实现删除链表中重复的节点
题目描述:
在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5
三、总结
代码一:
<?php
/*class ListNode{
var $val;
var $next = NULL;
function __construct($x){
$this->val = $x;
}
}*/
function deleteDuplication($pHead)
{
if($pHead==null){ //各种情况判断
return null;
}
if($pHead!=null&&$pHead->next==null){
return $pHead;
}
$cur = $pHead;
if($pHead->next->val==$pHead->val){
$cur = $pHead->next->next;
while($cur!=null&&$cur->val==$pHead->val){
$cur = $cur->next;
}
return deleteDuplication($cur);
}else{
$cur = $pHead->next;
$pHead->next = deleteDuplication($cur);
return $pHead;
}
}
代码二:没ac
<?php
/*class ListNode{
var $val;
var $next = NULL;
function __construct($x){
$this->val = $x;
}
}*/
function deleteDuplication($pHead)
{
$head=new ListNode(-1);
$ans=$head;
$head->next=$pHead;
while($head){
if($head->next&&$head->next->next){
$l1=$head->next;
$l2=$l1->next;
while($l1->val==$l2->val){
$head->next=$l2->next;
if($l2->next) $l2=$l2->next;
else break;
}
$head=$head->next;
}
}
return $ans->next;
}
代码三:
public static ListNode deleteDuplication(ListNode pHead) { ListNode first = new ListNode(-1);//设置一个trick first.next = pHead; ListNode p = pHead;
ListNode last = first;
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;
}
代码四:
递归
class Solution {
public:
ListNode* deleteDuplication(ListNode* pHead)
{
if (pHead==NULL)
return NULL;
if (pHead!=NULL && pHead->next==NULL)
return pHead; ListNode* current; if ( pHead->next->val==pHead->val){
current=pHead->next->next;
while (current != NULL && current->val==pHead->val)
current=current->next;
return deleteDuplication(current);
} else {
current=pHead->next;
pHead->next=deleteDuplication(current);
return pHead;
}
}
};
最新文章
- hessian接口参数,子类与父类不能有同名字段解决方法
- 关于Repeater嵌套绑定的问题
- malloc 函数到底做了什么?
- Mac下配置Maven
- bzoj 1412 [ZJOI2009]狼和羊的故事(最小割)
- SharePoint 2010 Ribbon的实现
- [Android Framework]linux 文件系统
- 记一次坑die(误)的题目--HDU2553--(DFS)
- 关于启动文件分析的(MDK-ARM) 【转】
- 熟悉Objective—C
- sql server DbHelperSQL类
- 20170922xlVBA_GetCellTextFromWordDocument
- 我不是学Java的!我不是学Java的!我不是学Java的!。。。。【自我催眠中】
- Linux就业技术指导(二):简历项目经验示例
- 关于modelsim时序仿真的几篇文章
- 设计模式之笔记--职责链模式(Chain of Responsibility)
- Sql的一些常规判断
- nodejs module/require
- 【线段树】HDU1394 - Minimum Inversion Number
- 《C#高效编程》读书笔记02-用运行时常量(readonly)而不是编译期常量(const)
热门文章
- colrm---删除文件制定列
- ping---测试主机之间网络的连通性
- 图片上传5-多个图片上传,独立项目Demo和源码
- [React] Define defaultProps and PropTypes as static methods in class component
- actionBar-shareIcon 分享按钮的修改
- thinkphp图片处理
- 【Codeforces Round #452 (Div. 2) B】Months and Years
- ASP.Net中页面传值的几种方式
- Linux常用运维命令小结
- easy ui 验证