leetcode 83--Remove Duplicates from Sorted List 链表 删除元素
2016-05-09 20:05
363 查看
Given a sorted linked list, delete all duplicates such that each element appear only once.
For example,
Given 1->1->2, return 1->2.
Given 1->1->2->3->3, return 1->2->3.
解题思路就是遍历链表,如果2个节点的元素值相等就删掉后一个,否则就移位。尤其注意的是不要直接操作head否则到时候返回的时候head就变了,或者单独保存head进行返回。
For example,
Given 1->1->2, return 1->2.
Given 1->1->2->3->3, return 1->2->3.
解题思路就是遍历链表,如果2个节点的元素值相等就删掉后一个,否则就移位。尤其注意的是不要直接操作head否则到时候返回的时候head就变了,或者单独保存head进行返回。
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */ public class Solution { public ListNode deleteDuplicates(ListNode head) { if(head==null||head.next==null) return head; ListNode p=head; while(p!=null&&p.next!=null){ if(p.val==p.next.val){ p.next=p.next.next; } else{ p=p.next; } } return head; } }
相关文章推荐
- [C/C++]反转链表
- C#实现基于链表的内存记事本实例
- C#模拟链表数据结构的实例解析
- C语言实现带头结点的链表的创建、查找、插入、删除操作
- C++利用静态成员或类模板构建链表的方法讲解
- C++实现简单的学生管理系统
- Linux内核链表实现过程
- C++链表倒序实现方法
- C#通过链表实现队列的方法
- C#实现的简单链表类实例
- 找出链表倒数第n个节点元素的二个方法
- Java数据结构之简单链表的定义与实现方法示例
- Java模拟有序链表数据结构的示例
- C语言单循环链表的表示与实现实例详解
- C++实现的链表类实例
- PHP小教程之实现链表
- PHP中模拟链表和链表的基本操作示例
- C语言双向链表的表示与实现实例详解
- js链表操作(实例讲解)
- C语言实现输出链表中倒数第k个节点