剑指offer

2018-09-16  本文已影响0人  上行彩虹人

1.链表反转

#include<cstdio>
#include<list>
#include<stack>
using namespace std;
int main(){
    list<int> l ;
    int tem=0;
    for(int i=0;i<5;i++){
        scanf("%d",&tem);
        l.push_back(tem);
    }  
    stack<int> s;
    list<int>:: iterator i;
    for(i=l.begin();i!=l.end();i++){
        s.push(*i); 
    }
    while(!s.empty()){
        int t = s.top();
        printf("%d ",t);
        s.pop();
        
    }
    return 0;

    /*压栈处理
    stack<int> s;
    int tem;
    for(int i =0;i<5;i++){
        scanf("%d",&tem);
        s.push(tem);
    }
    while(!s.empty()){
        printf("%d ",s.top());
        s.pop();
    }*/
} 

1、输出倒数第k个数

#include<cstdio>
#include<list>
using namespace std;
int main(){
    list<int> l ;
    l.push_back(1); 
    l.push_back(2); 
    l.push_back(3); 
    l.push_back(4); 

    int k = 0;
    while(1){
        scanf("%d",&k);
    list<int>::iterator i;
    list<int>::iterator j;
    int index = 0;
    i = l.begin();
    for (;i!=l.end();i++){
        index++;
        if (index == k+1)
        break;
    }
    j=l.begin();
    while(i!=l.end()){
        i++;
        j++;
    } 
    printf("%d\n",*j);
    }
    
    return 0;
}
上一篇 下一篇

猜你喜欢

热点阅读