ARTS挑战第六周

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

关于决策
在做决策前可以采取如下几点建议:

  1. 找个信得过的人,把你的决定告诉他,听听他的意见
  2. 比较一下不同决定在不同情况下产生的结果,展望一下这些结果,花点时间“现场体验”一下
  3. 做好调查研究。不过不要被过量的信息淹没
  4. 列出每个决定可能产生的结果,列出所有的利弊得失按照优先级排列好
  5. 对于正在考虑的决定,把支持和反对的理由都写下来。一天之后,再去阅读你写的内容,要大胆质疑自己所做的假设

Share

静态
如果一个语言使用的策略支持编译器在编译时决定某个问题,那么可以说这个语言具有静态特性。
动态
如果一个语言只允许在程序运行时作出决定,那么可以说这个语言是动态语言。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、温故而知新 1. 内存不够怎么办 内存简单分配策略的问题地址空间不隔离内存使用效率低程序运行的地址不确定 关于...
    SeanCST阅读 7,867评论 0 27
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,136评论 1 32
  • 文|桃核MM 我等待地铁口的这片梨花已久了。每天从这里经过,总会不经意的望向这条路,树下停满了电动车,我希望它们都...
    心灵烟火阅读 198评论 0 2
  • 多年以来,我反复日夜深思,这些年来我所遇到的每一个人,所做的每一件事,所听到每一种声音,是否能真正的给我带来过什么...
    维卓阅读 228评论 0 0
  • 生命中,总有一些人,一些事,令你回味,令你感恩,令你念念不忘。而有些人,有些事,在当时却不觉得如何,也不会记在心里...
    cola的春天阅读 562评论 4 9