• 输入一个链表,反转链表后,输出链表的所有元素。


    // test14.cpp : 定义控制台应用程序的入口点。
    //

    #include "stdafx.h"
    #include<iostream>
    #include<fstream>
    #include<string>
    #include<cctype>
    #include <vector>
    #include<exception>
    #include <initializer_list>
    #include<stack>
    using namespace std;
    
    
      struct ListNode {
    int val;
       struct ListNode *next;
       ListNode(int x) :
      val(x), next(NULL) {
    }
     };
    
      class Solution {
      public:
    	  ListNode* ReverseList(ListNode* pHead) {
    		  //把链表中的元素首先存入一个栈中
    		  //从栈中一个一个地读出数据插入rlist中
    		  ListNode *rlist=pHead;
    		  stack<int> temp;
    		  while (rlist !=NULL)
    		  {
    			  temp.push((*rlist).val);
    			  rlist = rlist->next;
    		  }
    	
    		  rlist = pHead;
    	
    		  while (rlist !=NULL)
    		  {
    			 if(!temp.empty())
    			 { 
    			  (*rlist).val = temp.top();
    			  temp.pop();
    			  rlist=(*rlist).next;//一开始这个地方忘了更新rlist了,结果一直出现栈溢出这个问题
    			 }
    		  }
    
    		  return pHead;
    	  }
      };
    
    int main()
    {
    	int num;
    	vector<int> vec;
    	Solution so;
    	
    	ListNode first(1);
    	ListNode second(2);
    	ListNode third(3);
    	ListNode four(4);
    	ListNode *head=&first;
    	first.next = &second;
    	second.next = &third;
    	third.next = &four;
    	
    	ListNode *result= so.ReverseList(head);
    	while (result !=NULL)
    	{
    		cout << (*result).val<<"  ";
    		result = (*result).next;
    	}
    	cout << endl;
    	
    	return 0;
    }
  • 相关阅读:
    js字符串截取函数slice()、substring()、substr()
    js获取字符串最后一位方法
    支持xhr浏览器:超时设定、加载事件、进度事件
    深入理解ajax系列第一篇——XHR对象
    MySQL命令行操作
    nodejs中mysql用法
    大衍数列
    牌型种数
    加法变乘法
    三羊献瑞
  • 原文地址:https://www.cnblogs.com/wdan2016/p/5955497.html
Copyright © 2020-2023  润新知