開發平台(Platform): (Ex: Win10, Linux, ...)
Unix
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
GCC-6.2.0
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
No
問題(Question):
小弟最近在leetcode上練功
自己有寫出答案,但是跑得不夠快,看一下其他高手寫的
我看到一段程式碼,他是這樣寫
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution {
public:
ListNode* deleteDuplicates(ListNode* head) {
if (head == NULL || head -> next == NULL){
return head;
}
*[1;33ListNode* current = head;*[m
while (current -> next != NULL){
if (current -> val == current -> next -> val){
current -> next = current -> next -> next;
}
else{
current = current -> next;
}
}
*[1;33return head;*[m
}
};
看一下標色的字,這邊新設一個pointer變數current,assign head進來
但是return是return head
想請問一下,是不是這種設法,就是會讓current的值和head連動?
這種編法術語是什麼呢?
他的好處在哪裡呢?謝謝
餵入的資料(Input):
Input: 1->1->2
預期的正確結果(Expected Output):
Output: 1->2
錯誤結果(Wrong Output):
無
程式碼(Code):(請善用置底文網頁, 記得排版,禁止使用圖檔)
如上
補充說明(Supplement):
leetcode 83題