zoukankan      html  css  js  c++  java
  • 删除重复的节点

    没有回收,可能会造成内存泄露

    在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5

    #include<fstream>
    #include <vector>
    #include<string>
    #include<iostream>
    #include <sstream>
    #include <stdexcept>
    using namespace std;
    
    
    struct ListNode {
    int val;
    struct ListNode *next;
    ListNode(int x) :
    val(x), next(NULL) {
    }
    };
    
    class Solution {
    public:
    	//没有回收节点,会造成内存泄露
    	ListNode* deleteDuplication(ListNode* pHead)
    	{
    		if (pHead == NULL||pHead->next==NULL){
    			return pHead;
    		}
    		ListNode *newHead = pHead;
    		while (pHead->next)
    		{
    			if (pHead->val == pHead->next->val){
    				while (pHead->val == pHead->next->val)
    				{
    					pHead->next = pHead->next->next;
    				}
    			}
    			 
    			pHead = pHead->next;
    		}
    		pHead = newHead;
    		return pHead;
    	}
    };
    
    
    int main()
    {
    	Solution s;
    	ListNode l1(1), l2(2), l3(3), l4(3), l5(4), l6(4), l7(5);
    	(&l1)->next = &l2;
    	(&l2)->next = &l3;
    	(&l3)->next = &l4;
    	(&l4)->next = &l5;
    	(&l5)->next = &l6;
    	(&l6)->next = &l7;
    	ListNode *l= s.deleteDuplication(&l1);
    	while (l){
    		cout << l->val;
    		l = l->next;
    	}
    	system("pause");
    	return 0;
    }
    
  • 相关阅读:
    zepto.js常用操作
    使用require.js
    iscroll.js文档
    EasyUI Resizable 可调整尺寸
    EasyUI Droppable 可放置
    EasyUI Draggable 可拖动
    EasyUI Parser 解析器
    EasyUI Easyloader 加载器
    Jquery EasyUI插件
    从MySQL随机选取数据
  • 原文地址:https://www.cnblogs.com/bananaa/p/7729727.html
Copyright © 2011-2022 走看看