题解 | #删除有序链表中重复的元素-I#

删除有序链表中重复的元素-I

https://www.nowcoder.com/practice/c087914fae584da886a0091e877f2c79

双指针解法

当前指针和next指针比较val,

相等则当前指针指向后两位,next指针向后迭代。

不相等则双指针直接向后迭代
class Solution {
public:
    /**
     * 
     * @param head ListNode类 
     * @return ListNode类
     */
    ListNode* deleteDuplicates(ListNode* head) {
        // write code here
        //排除不需要删除的元素
        if(head==nullptr||head->next==nullptr){
            return head;
        }
        //双指针
        ListNode* cur = head;
        ListNode* next = head->next;
        //迭代
        while(next){
            if(cur->val == next->val){
                cur->next = next->next;
                if(next->next){
                    next = next->next;
                }else{
                    break;
                }
            }else{
                cur = next;
                next = next->next;
            }
        }
        return head;
    }
};
全部评论

相关推荐

学java时间比较短不到三个月,基本的技术栈都过了一遍就是都不太深,有个小项目。是继续找实习还是沉淀准备秋招呢?找实习的话会花很多时间在八股,放弃的话又怕秋招简历太难看。有无大佬支招
今天java了吗:1.一定要找实习,实习不一定要去,但是找实习过程中的面试经验和心态经验才是最重要的 2.八股本来就是大头,甚至比项目重要 3.这个时间段也是面试比较多的阶段,可以抓住机会锻炼。面试才会发现自己的不足,感觉自己会了和能给面试官娓娓道来是两码事
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务