[203] Remove Linked List Elements
2016-07-26 15:34
211 查看
1. 题目描述
Remove all elements from a linked list of integers that have value val.Example
Given: 1 –> 2 –> 6 –> 3 –> 4 –> 5 –> 6, val = 6
Return: 1 –> 2 –> 3 –> 4 –> 5
移除链表中等于给定值的元素。
2. 解题思路
首先移除头指针节点为给定值的元素,因为这个移除的方式和中间节点不太相同。之后移除后边重复的节点,使用两个指针p、q,p指向前一个不是的值,当发现q与值相等时,p->next = q->next,不相等时p、q后移。3. Code
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */ public class Solution { public ListNode removeElements(ListNode head, int val) { // 首先去除所有处于头部的val while(head != null && head.val == val) { head = head.next; } if(head == null) return head; ListNode p = head, q = p.next; while(q != null) { if(q.val == val) { p.next = q.next; }else{ p = p.next; } q = p.next; } return head; } }
相关文章推荐
- [C/C++]反转链表
- C#实现基于链表的内存记事本实例
- C#模拟链表数据结构的实例解析
- C语言实现带头结点的链表的创建、查找、插入、删除操作
- C++利用静态成员或类模板构建链表的方法讲解
- C++实现简单的学生管理系统
- Linux内核链表实现过程
- C++链表倒序实现方法
- C#通过链表实现队列的方法
- Node.js环境下JavaScript实现单链表与双链表结构
- C#实现的简单链表类实例
- 找出链表倒数第n个节点元素的二个方法
- Java数据结构之简单链表的定义与实现方法示例
- Java模拟有序链表数据结构的示例
- C语言单循环链表的表示与实现实例详解
- C++实现的链表类实例
- PHP小教程之实现链表
- PHP中模拟链表和链表的基本操作示例
- C语言双向链表的表示与实现实例详解
- js链表操作(实例讲解)