Algorithm
203. Remove Linked List Elements
/**
Remove all elements from a linked list of integers that have value val.
Example:
Input: 1->2->6->3->4->5->6, val = 6
Output: 1->2->3->4->5
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
class Solution {
public ListNode removeElements(ListNode head, int val) {
ListNode dummyHead = new ListNode(-1);
dummyHead.next = head;
ListNode prev = dummyHead;
while (prev.next != null) {
if (prev.next.val == val) {
prev.next = prev.next.next;
} else {
prev = prev.next;
}
}
return dummyHead.next;
}
}
Review
Tip
关于决策
在做决策前可以采取如下几点建议:
- 找个信得过的人,把你的决定告诉他,听听他的意见
- 比较一下不同决定在不同情况下产生的结果,展望一下这些结果,花点时间“现场体验”一下
- 做好调查研究。不过不要被过量的信息淹没
- 列出每个决定可能产生的结果,列出所有的利弊得失按照优先级排列好
- 对于正在考虑的决定,把支持和反对的理由都写下来。一天之后,再去阅读你写的内容,要大胆质疑自己所做的假设
Share
静态
如果一个语言使用的策略支持编译器在编译时决定某个问题,那么可以说这个语言具有静态特性。
动态
如果一个语言只允许在程序运行时作出决定,那么可以说这个语言是动态语言。
网友评论