LeetCode题目
给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字。
示例 :
输入: 1->2->3->3->4->4->5
输出: 1->2->5
算法思想
1.创建一个虚拟结点,将所有不重复的节点连接在后面
2.定义cur遍历单链表,判断当前结点与下一结点数字是否相同
3.返回新的单链表
代码
class Solution { public ListNode deleteDuplicates(ListNode head) { if(head==
null||head.next==null){ return head; } ListNode node=new ListNode(-1); ListNode
tmp=node; ListNode cur=head; while(cur!=null){ if(cur.next!=null&&cur.val==cur.
next.val){ while(cur.next!=null&&cur.val==cur.next.val){ cur=cur.next; } cur=cur
.next; }else{ tmp.next=cur; cur=cur.next; tmp=tmp.next; } } tmp.next=null;
return node.next; } }

技术
©2019-2020 Toolsou All rights reserved,
某东14薪变16薪,是诚意还是套路?os模块的简单使用浏览器内核(理解)让人意想不到的Python之樱花树(turtle库的华丽样式)java四大函数式接口(重点,简单)html写樱花树,写樱花树的作文计算机网络---计算机网络基本概念(协议、体系)HashMap详解