82. 删除排序链表中的重复元素 II/83. 删除排序链表中的重复元素

版权声明:只要梦想一天,只要梦想存在一天,就可以改变自己的处境。 https://blog.csdn.net/dongyanwen6036/article/details/86543661
82. 删除排序链表中的重复元素 II

示例 1:
输入: 1->1->2
输出: 2

直接写过这题 在剑指offer,详细解释

 class Solution {
 public:
     //新建一个头节点,两个辅助指针
	 ListNode* deleteDuplicates(ListNode* head) {
		 ListNode *p = new ListNode(0);
		 ListNode *new_Head = p;
		 ListNode *q = head;
		 while (q)
		 {
			 while (q&&q->next&&q->val == q->next->val)
			 {
				 int temp = q->val;
				 while (q&&q->val == temp)
				 {
					 q = q->next;
				 }
			 }
			 p->next = q;
			 p = p->next;
			 if(q)
			 q = q->next;
		 }
		 return new_Head->next;
	 }
 };
  
83. 删除排序链表中的重复元素

给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。

示例 1:
输入: 1->1->2
输出: 1->2

把上面的去除重复的地方改改就行。

class Solution {
 public:
     //新建一个头节点,两个辅助指针
	 ListNode* deleteDuplicates(ListNode* head) {
		 ListNode *p = new ListNode(0);
		 ListNode *new_Head = p;
		 ListNode *q = head;
		 while (q)
		 {
			 while (q&&q->next&&q->val == q->next->val)
			 {
					 q = q->next;				 
			 }
			 p->next = q;
			 p = p->next;
			 if(q)
			 q = q->next;
		 }
		 return new_Head->next;
	 }
 };

猜你喜欢

转载自blog.csdn.net/dongyanwen6036/article/details/86543661