• 剑指offer例题5—逆序输出链表


    使用递归:

    #include<iostream>
    using namespace std;
    struct ListNode
    {
    	int value;
    	ListNode *next;
    };
    void Print(ListNode *list)
    {
    	if(list!=NULL)
    	{
    		if(list->next!=NULL)
    		Print(list->next);
    		cout<<list->value<<endl;
    	}	
    }
    int main()
    {
    	int n;
    	while(cin>>n)
    	{
    		ListNode *head=(ListNode*)malloc(sizeof(ListNode*));
    		ListNode *list=head;
    		while(n--)
    		{
    			int m;cin>>m;
    			ListNode *newNode=(ListNode*)malloc(sizeof(ListNode*));
    			newNode->value=m;
    			list->next=newNode;
    			list=list->next;
    		}
    		list->next=NULL;
    		Print(head->next);
    	}
    	return 0;
    }
    
    

     使用栈:

    #include<iostream>
    #include<stack>
    using namespace std;
    struct ListNode
    {
    	int value;
    	ListNode *next;
    };
    void Print(ListNode *list)
    {
    	stack<ListNode*>s;
    	while(list!=NULL)
    	{
    	   s.push(list);
    	   list=list->next;
    	}
    	while(!s.empty())
    	{
    		cout<<s.top()->value<<endl;
    		s.pop();
    	}
    }
    int main()
    {
    	int n;
    	while(cin>>n)
    	{
    		ListNode *head=(ListNode*)malloc(sizeof(ListNode*));
    		ListNode *list=head;
    		while(n--)
    		{
    			int m;cin>>m;
    			ListNode *newNode=(ListNode*)malloc(sizeof(ListNode*));
    			newNode->value=m;
    			list->next=newNode;
    			list=list->next;
    		}
    		list->next=NULL;
    		Print(head->next);
    	}
    	return 0;
    }
    
  • 相关阅读:
    7-4
    7-3
    第五章例5-2
    第五章例5-1
    第四章例4-12
    第四章例4-11
    第四章例4-10
    第四章例4-9
    第四章例4-8
    第四章例4-7
  • 原文地址:https://www.cnblogs.com/tgkx1054/p/2839380.html
Copyright © 2020-2023  润新知