博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
牛客OJ:删除链表中重复的节点
阅读量:4060 次
发布时间:2019-05-25

本文共 1031 字,大约阅读时间需要 3 分钟。

两指针循环(感觉还是三指针好写一些):

/*struct ListNode {    int val;    struct ListNode *next;    ListNode(int x) :        val(x), next(NULL) {    }};*/class Solution {public:    ListNode* deleteDuplication(ListNode* pHead)    {        if(pHead == NULL) return NULL;        ListNode* root = NULL;        ListNode* fa = pHead;        ListNode* cld = fa->next;        ListNode* last = NULL;        while(cld!=NULL){            bool flag = false;            while(cld!=NULL && fa->val == cld->val){                flag = true;                delete fa;                fa = cld;                cld = cld->next;            }            if(flag){                delete fa;                if(last != NULL) last->next = cld;                fa = cld;                if(cld!=NULL) cld = cld->next;                continue;            }            if(root == NULL) root = fa;            if(cld == NULL) break;            last = fa;            fa = cld;            cld = cld->next;        }        if(root==NULL&&fa!=NULL) root = fa;        return root;    }};

转载地址:http://zfwji.baihongyu.com/

你可能感兴趣的文章
【数据结构必备基本知识】递归与迭代的联系、区别与优缺点对比详解
查看>>
【数据结构周周练】010 递归算法实现二叉树的创建与遍历
查看>>
【数据结构周周练】011 非递归算法实现二叉树的遍历
查看>>
【数据结构周周练】012 利用队列和非递归算法实现二叉树的层次遍历
查看>>
【数据结构周周练】013 利用栈和非递归算法求二叉树的高
查看>>
【数据结构周周练】014 利用栈和非递归算法求链式存储的二叉树是否为完全二叉树
查看>>
【数据结构周周练】015 利用递归算法创建链式存储的二叉树并转换左右孩子结点
查看>>
【数据结构周周练】016 利用递归算法及孩子兄弟表示法创建树、遍历树并求树的深度
查看>>
【数据结构周周练】017 利用递归算法及孩子兄弟表示法创建森林、遍历森林并求森林的叶子结点个数
查看>>
【数据结构必备基本知识】数据结构常用预定义常量、类型及头文件
查看>>
【数据结构周周练】018 利用递归算法及中序遍历将二叉树线索化并遍历
查看>>
【数据结构周周练】019 利用递归算法创建二叉排序树并遍历
查看>>
【数据结构周周练】020 二叉排序树的排序与迭代查找
查看>>
【数据结构周周练】035 利用递归判断一棵二叉树是否为二叉排序树
查看>>
【数据结构周周练】021 求某一个数据在二叉排序树中的层数
查看>>
【数据结构周周练】022 从大到小输出二叉排序树中小于某个值的所有结点编号及数据
查看>>
【数据结构必备基础知识】之图的基本概念详解
查看>>
【数据结构必备基本知识】图的存储结构(邻接矩阵、邻接表、十字链表、邻接多重表)详解
查看>>
【数据结构周周练】023 将图的邻接表表示转化为邻接矩阵表示的算法
查看>>
【数据结构周周练】024 图的经典遍历算法之深度优先搜索、广度优先搜素
查看>>