203 Remove Linked List Elements
2016-02-05 18:58
513 查看
题目链接:https://leetcode.com/problems/remove-linked-list-elements/
题目:
解题思路:
这题的考点是链表的操作。
思路很普通,一次遍历将等于 val 的结点删除即可。
需要注意的是一些特别的情况。
例如:
1. 要删除的结点在链表头。使用 while 循环,使 head 定位到第一个不用删除的结点上。
2. 要删除的结点在链表尾。同过 while(q != null) 来控制
3. 整个链表的结点都是需要删除的结点。
小技巧:在头结点之前再创建一个结点,这样就能将删除第一个结点的情况归为一般情况。
代码实现:
方法二:
题目:
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
解题思路:
这题的考点是链表的操作。
思路很普通,一次遍历将等于 val 的结点删除即可。
需要注意的是一些特别的情况。
例如:
1. 要删除的结点在链表头。使用 while 循环,使 head 定位到第一个不用删除的结点上。
2. 要删除的结点在链表尾。同过 while(q != null) 来控制
3. 整个链表的结点都是需要删除的结点。
小技巧:在头结点之前再创建一个结点,这样就能将删除第一个结点的情况归为一般情况。
代码实现:
/** * 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) { if(head == null) return head; while(head != null && head.val == val) head = head.next; if(head == null || head.next == null) return head; ListNode p = head; ListNode q = head.next; while(q != null) { if(q.val == val) { ListNode tmp = q; q = q.next; p.next = q; } else { p = p.next; q = q.next; } } return head; } }
63 / 63 test cases passed. Status: Accepted Runtime: 2 ms
方法二:
/** * 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) { ListNode helper = new ListNode(0); helper.next = head; ListNode p = helper; while(p.next != null){ if(p.next.val == val){ ListNode next = p.next; p.next = next.next; }else{ p = p.next; } } return helper.next; } }
63 / 63 test cases passed. Status: Accepted Runtime: 2 ms
相关文章推荐
- PAT_乙级1031
- 今年暑假不AC
- 得分(Score, ACM/ICPC Seoul 2005, UVa1585)
- 我的蓝桥杯历届初赛试题总结
- eclipse导入tomcat run as 没有server
- KVM学习笔记
- markdown语法书
- hdu 1969 Pie
- Debugging D Program on Windows
- 开启Mac自带Apache步骤及遇到问题的解决办法
- 《STL源代码剖析》---stl_alloc.h阅读笔记
- codeforces 624C Graph and String
- 字符串的长度 -- js
- 错误记录--“==”与“=”错误
- hdu2037 今年暑假不AC(贪心||暴力)
- Java 自定义注解详解
- UBIFS 白皮书 -- UBIFS设计简介
- 加载大图到应用内存时所需的缩放步骤
- 使用二分法猜1到100之间的一个数最多需要几次猜对
- linux yum源讲解