zoukankan      html  css  js  c++  java
  • 链表反转 递归和非递归版

    #include <stdio.h>
    
    typedef struct node
    {
    	int val;
    	node* next;
    };
    
    node* reverse(node* list , node* &head)
    {
    	if ( !list || !list->next )
    	{
    		head->next = NULL;
    		head = list;
    		return list;
    	}
    	else
    	{
    		node* temp = reverse( list->next , head);
    		temp->next = list;
    		return list;
    	}
    }
    
    node* nonreverse(node* head)
    {
    	node* p1,*p2,*temp;
    	p1 = head;
    	if (p1)
    		p2 = p1->next ;
    	while ( p2)
    	{
    		temp = p2->next ;
    		p2->next = p1;
    		p1 = p2;
    		p2 = temp;
    	}
    	head->next = NULL;
    	head = p1;
    	return head;
    	
    }
    node* create(int n )
    {
    	int i ; 
    	node* head ;
    	node* temp ,*pre;
    	head = NULL;
    	
    	head = new node;
    	pre = head;
    	while ( n --)
    	{
    		temp = new node;
    		scanf("%d" , &temp->val);
    		pre ->next= temp ;
    		pre = temp;
    	}
    	pre->next = NULL;
    	return head->next;
    }
    int main()
    {
    	node* list1,*list2;
    	list1 = create(5);
    	//list2= reverse(list1, list1);
    	list2 = nonreverse(list1);
    	return 0 ;
    }
    

      

  • 相关阅读:
    Zookeeper数据类型
    Zookeeper基本命令
    Redis集群
    Mysql 模拟自增主键
    git回滚版本操作
    Redis缓存穿透和雪崩
    日期格式jackson格式化
    Zookeeper安装
    redis主从复制
    Redis哨兵模式
  • 原文地址:https://www.cnblogs.com/lzhenf/p/2407169.html
Copyright © 2011-2022 走看看