zoukankan      html  css  js  c++  java
  • 删除单向链表中的某一个节点

    原文链接:http://blog.csdn.net/huahuahailang/article/details/8762785

    已知一个单向链表的表头head,写出一个删除某一个节点的算法,要求先找到此节点,然后删除。

    #include <iostream>
    
    using namespace std;
    
    typedef struct node
    {
    	int number;
    	struct node *next;
    }Node;
    
    Node *Delete(Node *head, int key){
    	Node *node1 = head;
    	Node *node2 = NULL;
    	if(head == NULL){
    		return NULL;
    	}
    	else{
    		if(node1->number == key){
    			head = head->next;
    			free(node1);
    			return head;
    		}
    		else{
    			while(node1 != NULL){
    				node2 = node1;
    				node2 = node1 -> next;
    				if(node2 -> number == key){
    					node1 -> next = node2 -> next;
    					free(node2);
    					break;
    				}
    				node1 = node1 -> next;
    			}
    			return head;
    		}
    	}
    }
    
    int main(){
    
    	Node *head = (Node*)malloc(sizeof(Node));
    	Node *p, *q, *q1;
    	int key;
    	p = (Node*)malloc(sizeof(Node));
    	q1 = q = head;
    	int i;
    	for(int i = 1; i < 10; i++){
    		p -> number = i;
    		head -> next = p;
    		head = p;
    		p = (Node*)malloc(sizeof(Node));	
    	}
    	head -> next = NULL;
    	cout << "原链表数据:" << endl;
    	q1 = q1 -> next;
    	while(q1 != NULL){
    		cout << q1 -> number << " ";
    		q1 = q1 -> next;
    	}
    	cout << endl;
    	cout << "输入要删除的数据:";
    	cin >> key;
    	p = Delete(q -> next, key);
    	cout << "删除一个" << key << "之后的链表数据:"	<< endl;
    	while(p != NULL){
    		cout << p -> number << " ";
    		p = p ->next;
    	}
    	cout << endl;
    	free(p);
    	free(head);
    	return 0;
    }
    

      程序运行结果:

    原链表数据:
    1 2 3 4 5 6 7 8 9
    输入要删除的数据:5
    删除一个5之后的链表数据:
    1 2 3 4 6 7 8 9

     
     
     
  • 相关阅读:
    #啃underscore源码 一、root对象初始化部分
    LeetCode 7. Reverse Integer (JS)
    LeetCode 1.两数之和(JS)
    【安利】前端基础学习资源
    如何防止XSS攻击?
    浅谈CSRF攻击方式
    node中__dirname、__filename、process.cwd()、process.chdir()表示的路径
    解决Error: ENOENT: no such file or directory, scandir 'xxx ode-sassvendor'
    jquery中attr和prop的区别
    git stash 命令
  • 原文地址:https://www.cnblogs.com/gatherstars/p/8196203.html
Copyright © 2011-2022 走看看