lintcode-easy-Remove Linked List Elements
2016-02-18 13:06
351 查看
Remove all elements from a linked list of integers that have value
Example
Given
看起来这题不难,但是还是有些地方需要注意,据说面试要做到bug-free
p = p.next;执行之后,p有可能是null,所以在循环条件中要检查p是否为null。
其实任何时候访问一个对象的成员之前,都要注意检查这个对象是否为null,否则会出现异常。
val.
Example
Given
1->2->3->3->4->5->3, val = 3, you should return the list as
1->2->4->5
看起来这题不难,但是还是有些地方需要注意,据说面试要做到bug-free
p = p.next;执行之后,p有可能是null,所以在循环条件中要检查p是否为null。
其实任何时候访问一个对象的成员之前,都要注意检查这个对象是否为null,否则会出现异常。
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */ public class Solution { /** * @param head a ListNode * @param val an integer * @return a ListNode */ public ListNode removeElements(ListNode head, int val) { // Write your code here if(head == null) return head; ListNode fakehead = new ListNode(0); fakehead.next = head; ListNode p = fakehead; while(p!= null && p.next != null){ while(p.next != null && p.next.val == val){ p.next = p.next.next; } p = p.next; } return fakehead.next; } }
相关文章推荐
- $.merge与concat的区别
- UML 画用例图
- 计数排序、桶排序和基数排序
- static用法
- cleanflight 代码简单分析
- 使用Jaxb中xjc命令由schema文件生成相应的实体类
- oracle触发器的类型及使用方法
- fiddler 抓包及分析
- day4 homework calc1.py
- UIALertView的基本用法与UIAlertViewDelegate对对话框的事件处理方法
- 110_leetcode_Best Time to Buy and sell Stock II
- Oracle触发器(trigger):一般用法
- erlang jcl远程调试 rabbitmq
- oracle利用触发器实现自增列
- Oracle 触发器的使用小结
- 1041. Be Unique (20)
- Java学习笔记2016.2.18 static、final关键字
- UML 9种图
- UIAlertView使用全解
- Android学习必备--java工具15个