【剑指Offer刷题小记】删除链表中的重复节点(JAVA版)

题目描述:在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5

问题分析:创建两个指针,一个指针p用来遍历原链表,另一个指针q用来构建新链表,同时再定义一个节点指向新链表的头节点。判断p与p的下一节点的值是否相等,若不等则添加到新链表中,否则继续判断后续节点的值与当前节点是否相等。此外,还需要一个判断链表末尾的值是否重复的标志,以此判断遍历完成后是否仍需添加最后的节点。

代码截图

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容