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

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

你可能感兴趣的:(ARTS挑战第六周)