[Leetcode]83. Remove Duplicates from Sorted List

58. Length of Last Word

題目連結
難易度:Easy

Given a sorted linked list, delete all duplicates such that each element appear only once.

For example,
Given 1->1->2, return 1->2.
Given 1->1->2->3->3, return 1->2->3.

給定一排列好的鏈結串列,回傳刪去重複節點的串列

思路

Linked list的基礎題,由於是排列好的list,只要了解Linked list的node特性是可以指向下一個節點,這題就差不多了。

由於JavaScript並沒有指標可以用,所以是使用物件的屬性val、next來設置,一個node(鏈結串列)物件,
有node.val代表當前節點的值、node.next指向下一個node,如此下去到最後一個node的node.next為空為止。

此題僅需使用while loop從head開始遍歷節點到空為止,當當前node的值與下一node的值相等時,將當前node.next指向node.next.next,
作用等同於刪去了node.next。

解題

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
/**
* Definition for singly-linked list.
* function ListNode(val) {
* this.val = val;
* this.next = null;
* }
*/
/**
* @param {ListNode} head
* @return {ListNode}
*/
var deleteDuplicates = function(head) {
if(!head) return head;
var nowNode = head;
while(nowNode.next){
if(nowNode.val == nowNode.next.val){
nowNode.next = nowNode.next.next;
}else{
nowNode = nowNode.next;
}
}
return head;
};