美文网首页
leetcode的题目83、203

leetcode的题目83、203

作者: 二木二三水 | 来源:发表于2018-05-31 00:12 被阅读0次

    leetcode:83

    给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。

    示例1:输入: 1->1->2    输出: 1->2

    示例2:输入: 1->1->2->3->3   输出: 1->2->3

    我的思路:因为给出来的链表已经是有序的,所以不需要进行两次遍历来寻找相同节点。只需要定义一个新的指针,从头节点开始遍历,每个节点都判断下一个节点是否与本节点相同,相同就删除,不想同就将指针移到下一个节点继续判断,直到指针指向最后一个节点(node->next==NULL)

    注意:关注测试用例,存在空链表(NULL),所以在遍历前先判断是否为空链表,如果链表为空,就不能对其进行操作,否则会报错!

    leetcode:203

    删除链表中等于给定值 val 的所有节点。

    示例:

    输入: 1->2->6->3->4->5->6, val = 6

    输出: 1->2->3->4->5

    我的思路:本题使用知道前一节点来删除当前节点的方式进行删除,由于存在第一节点就需要删除的情况,所以需要使用构造函数新建一个节点(new ListNode)作为第一节点的前一节点。再新建指针指向“头结点”,开始遍历,检查当前节点的下一节点的值是否与给定值相同,相同则删除,否则,指针后移,直到当前节点都最后一个节点(node->next==NULL),就跳出循环,返回dummy->next(因为head有可能被删除,所以不直接返回head)

    注意点同上

    相关文章

      网友评论

          本文标题:leetcode的题目83、203

          本文链接:https://www.haomeiwen.com/subject/ssrfsftx.html