码迷,mamicode.com
首页 > 其他好文 > 详细

Remove Linked List Elements &&remove-duplicates-from-sorted-list

时间:2015-11-10 00:09:16      阅读:174      评论:0      收藏:0      [点我收藏+]

标签:

Remove all elements from a linked list of integers that have value val.

样例

Given 1->2->3->3->4->5->3, val = 3, you should return the list as 1->2->4->5

这道题的算法其实很简单,如果遇到要删除的元素,跳过,直接找到下一个非目标元素;无奈学渣的我对链表竟然已经到了如此退化的题目,所以也研究了一些时间。

 1 /**
 2  * Definition for singly-linked list.
 3  * public class ListNode {
 4  *     int val;
 5  *     ListNode next;
 6  *     ListNode(int x) { val = x; }
 7  * }
 8  */
 9 public class Solution {
10     /**
11      * @param head a ListNode
12      * @param val an integer
13      * @return a ListNode
14      */
15     public ListNode removeElements(ListNode head, int val) {
16         // Write your code here
17         ListNode helpnode = new ListNode (0);
18         helpnode.next = head;
19         ListNode p = helpnode;
20         while(p.next != null){
21             if(p.next.val == val){
22                 p.next = p.next.next;
23             }
24             else {
25                 p = p.next;
26             }
27         }
28         return helpnode.next;
29     }
30 }

拓展题:

删除排序链表中的重复元素

容易 删除排序链表中的重复元素

给定一个排序链表,删除所有重复的元素每个元素只留下一个

样例

给出1->1->2->null,返回 1->2->null

给出1->1->2->3->3->null,返回 1->2->3->null

 1 /**
 2  * Definition for ListNode
 3  * public class ListNode {
 4  *     int val;
 5  *     ListNode next;
 6  *     ListNode(int x) {
 7  *         val = x;
 8  *         next = null;
 9  *     }
10  * }
11  */
12 public class Solution {
13     /**
14      * @param ListNode head is the head of the linked list
15      * @return: ListNode head of linked list
16      */
17     public static ListNode deleteDuplicates(ListNode head) { 
18         ListNode p = new ListNode(0);
19         p.next = head;
20         if(head == null )
21            return null;
22         while (head.next != null){
23             if (head.next.val == head.val ){
24                  head.next = head.next.next;
25              }else{
26              head = head.next;
27              }
28         }
29         return  p.next;
30     }  
31 }

 

Remove Linked List Elements &&remove-duplicates-from-sorted-list

标签:

原文地址:http://www.cnblogs.com/wangnanabuaa/p/4951578.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!