首页 > 代码库 > LeetCode OJ 82. Remove Duplicates from Sorted List II
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
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。