上传网站代码wordpress重写插件
web/
2025/10/6 13:05:57/
文章来源:
上传网站代码,wordpress重写插件,html5中国网站欣赏,北京便宜做网站本题来源---《删除链表中重复元素》。
题目描述 给定一个已排序的链表的头 head #xff0c; 删除所有重复的元素#xff0c;使每个元素只出现一次 。返回已排序的链表 。
示例 1#xff1a; 输入#xff1a;head [1,1,2]
输出#xff1a;[1,2]示例 2#xff1a; 输入…本题来源---《删除链表中重复元素》。
题目描述 给定一个已排序的链表的头 head 删除所有重复的元素使每个元素只出现一次 。返回已排序的链表 。
示例 1 输入head [1,1,2]
输出[1,2]示例 2 输入head [1,1,2,3,3]
输出[1,2,3]
提示
链表中节点数目在范围 [0, 300] 内-100 Node.val 100题目数据保证链表已经按升序 排列
/*** Definition for singly-linked list.* struct ListNode {* int val;* struct ListNode *next;* };*/
struct ListNode* deleteDuplicates(struct ListNode* head)
{}
关于本题我整理了两种解题方法
第一种单指针
第二种双指针
第一种单指针
解题思路
1声明一个指针指向头结点比较cur指向的data域与cur-next指向的data域是否相等。 2如果相等则删除该结点。 3如果不相等移动cur指针继续比较。 代码如下
struct ListNode* deleteDuplicates(struct ListNode* head)
{struct ListNode *cur,*tmp;cur head;if( !head ){return NULL;}while( cur-next ){if( cur-val cur-next-val ){tmp cur-next;cur-next cur-next-next;free(tmp);}else{cur cur-next;}}return head;
}
复杂度分析 时间复杂度O(n) 空间复杂度O(1)
第二种双指针
解题思路
1声明两个指针第一个指针cur指向head第二个指针ptr指向head-next。比较cur指向的data域与ptr指向的data域是否相等。 2如果相等则删除该结点。 3如果不相等移动cur、ptr指针继续比较。 代码如下
struct ListNode* deleteDuplicates(struct ListNode* head)
{struct ListNode *cur,*ptr,*tmp;if( !head ){return NULL;}cur head;ptr head-next;while( ptr ){if( cur-val ! ptr-val ){cur cur-next;ptr ptr-next;}else{tmp ptr;cur-next ptr-next;ptr ptr-next;free(tmp);}}return head;
}
复杂度分析 时间复杂度O(n) 空间复杂度O(1)
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/87925.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!