zoukankan      html  css  js  c++  java
  • 剑指offer-基础练习-增删节点-链表

    /*
    链表基本操作:
    	插入节点和删除节点
    */
    /*
    思路:
    	使用指向链表的头指针,这样在新插入节点后,头指针不会改变
    */
    
    struct ListNode{
    	int value;
    	ListNode* next;
    }
    
    void AddToTail(ListNode** pHead,int value){
    	if(pHead == null){
    		return;
    	}
    	//新建节点
    	ListNode *pNew = new ListNode();
    	pNew->value = value;
    	pNew->next = null;
    	
    	//当为空链表时
    	if(*pHead == null){
    		*pHead = pNew;
    	}else{
    		//遍历到链表的最后一个节点
    		ListNode *pNode = *pHead;
    		while(pNode->next != null){
    			pNode = pNode->next;
    		}
    		pNode->next = pNew;
    	}
    }
    
    void RemoveNode(ListNode** pHead,int value){
    	if(pHead == null || *pHead == null){
    		return;
    	}
    	ListNode* toBeDeleted = null;
    	ListNode* pNode = pHead;
    	
    	
    	if((*pHead)->value == value){
    		toBeDeleted = *pHead;
    		pHead = toBeDeleted;
    	}else{
    		while(pNode->next != null && pNode->next->value != value){
    			pNode = pNode->next;
    		}
    		if(pNode->next != null && pNode->next->value == value){
    			toBeDeleted = pNode->next;
    			pNode->next = pNode->next->next;
    		}
    	}		
    	
    	if(toBeDeleted != null){
    		delete(toBeDeleted);
    		toBeDeleted = null;
    	}
    }
    

       

  • 相关阅读:
    ZOJ Problem Set
    ZOJ Problem Set
    UVa 11464 偶数矩阵 枚举
    poj 1753 枚举
    Codeforces 637D 模拟
    hdu 5631 并查集
    hdu 5438 并查集
    UVa 10129 单词 (有向欧拉路+并查集)
    hdu 3018 欧拉路定理+并查集
    并查集的初步学习
  • 原文地址:https://www.cnblogs.com/buaaZhhx/p/11808490.html
Copyright © 2011-2022 走看看