LeetCode OJ 82. Remove Duplicates from Sorted List II
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode OJ 82. Remove Duplicates from Sorted List II相关的知识,希望对你有一定的参考价值。
Given a sorted linked list, delete all nodes that have duplicate numbers, leaving only distinct numbers from the original list.
For example,
Given 1->2->3->3->4->4->5
, return 1->2->5
.
Given 1->1->1->2->3
, return 2->3
.
Subscribe to see which companies asked this question
解答:
/** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; */ struct ListNode* deleteDuplicates(struct ListNode* head) { struct ListNode *pre_node, *this_node, *tmp_head; int tmp; while(NULL != head&&NULL != head->next){ this_node = head->next; tmp = head->val; while(NULL != this_node){ if(this_node->val == tmp){ this_node = this_node->next; } else{ break; } } if(head->next != this_node) head = this_node; else break; } if(NULL == head||NULL == head->next) return head; tmp_head = head; pre_node = head; while(NULL != pre_node){ head = pre_node->next; while(NULL != head&&NULL != head->next){ this_node = head->next; tmp = head->val; while(NULL != this_node){ if(this_node->val == tmp){ this_node = this_node->next; } else{ break; } } if(head->next != this_node) head = this_node; else break; } pre_node->next = head; if(NULL == pre_node) break; pre_node = pre_node->next; } return tmp_head; }
以上是关于LeetCode OJ 82. Remove Duplicates from Sorted List II的主要内容,如果未能解决你的问题,请参考以下文章
LeetCode OJ_题解(python):027-Remove Element ArrayEasy
LeetCode OJ 203Remove Linked List Elements
LeetCode OJ 26. Remove Duplicates from Sorted Array
LeetCode OJ Remove Duplicates from Sorted Array II