LeetCode之链表删除子问题
Posted 3 ERROR(s)
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode之链表删除子问题相关的知识,希望对你有一定的参考价值。
做题的关键在画图
一 、删除排序链表中的重复元素(83)
class Solution
public ListNode deleteDuplicates(ListNode head)
ListNode cur=head;
if(head==null)
return null;
while(cur.next!=null) 循环条件根据循环体中cur.next.next得出这里
if(cur.val==cur.next.val) cur.next不为空
cur.next=cur.next.next; 如果值相等就删除cur.next节点
else
cur=cur.next; 如果不相等往后遍历
return head;
二、删除排序链表中的重复元素 II(力82)
class Solution
public ListNode deleteDuplicates(ListNode head)
ListNode newHead= new ListNode();
ListNode temp=newHead;
ListNode cur=head;
if(head==null)
return 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 节点
temp.next=cur; 如果是首次出现的节点
temp=temp.next;
cur=cur.next;
temp.next=null; 不要忘记链表结尾置为null
return newHead.next;
图画的不好,大家将就一下
以上是关于LeetCode之链表删除子问题的主要内容,如果未能解决你的问题,请参考以下文章
Leetcode刷题笔记之链表篇剑指 Offer 18. 删除链表的节点