zoukankan      html  css  js  c++  java
  • 9月10日,美团网2014校招研发笔试哈尔滨站 1、链表翻转。给出一个链表和一个数k,比如链表1→2→3→4→5→6,k=2,则翻转后2→1→4→3→6→5,若k=3,翻转后3→2→1→6→5→4,若k=4,翻转后4→3→2→1→5→6,用程序实现

    // reverselink.cpp : 定义控制台应用程序的入口点。
    //
    
    #include "stdafx.h"
    
    struct Node{
        int num;
        struct Node*next;
    };
    
    typedef struct Node Node;
    
    
    Node * createLink(){
        Node *head=NULL,*urn,*tail;
        int data;
        cin>>data;
        while(data>0){
            urn=(Node*)malloc(sizeof(Node));
            urn->num=data;
            if(head==NULL)
                tail=head=urn;
            else{
                tail->next=urn;
                tail=tail->next;
            }
            cin>>data;
        }
        if(head!=NULL)
            tail->next=NULL;
        return head;
    
    }
    
    void printNode(Node*head){
        Node *p=head;
        while(p!=NULL){
            cout<<p->num<<" ";
            p=p->next;
        }
        return;
    }
    
    int _tmain(int argc, _TCHAR* argv[])
    {
        cout<<"Enter the numbers:"<<endl;
        Node *head=createLink();
        int k=2;
        stack<Node*> ss;
        int i;
        Node *la=NULL,*tail=NULL,*lb=head;
        while(lb!=NULL){
            i=0;
            Node *top;
            top=lb;
            while(lb!=NULL&&i<k){
                ss.push(lb);
                lb=lb->next;
                i++;
            }
            if(i==k){
                while(!ss.empty()){
                    if(la==NULL)
                        la=tail=ss.top();
                    else{
                        tail->next=ss.top();
                        tail=tail->next;
                    }
                    ss.pop();
                }
                if(lb==NULL)
                    tail->next=NULL;
            }
            else{
                tail->next=top;
            }
        }
    
        head=la;
    
        printNode(head);
        getchar();
        getchar();
        return 0;
    }
  • 相关阅读:
    开源的免费的对比工具
    win10 git bash 配置
    Java SSH 不使用终端也能调用环境变量中的指令
    MySQL WITH ROLLUP
    docker安装postgres
    开源的应用容器引擎
    清除浮动有哪几种方法
    js中的yield
    git的速学了解
    string/stringBuffer/StringBuilder的区别
  • 原文地址:https://www.cnblogs.com/593213556wuyubao/p/3976658.html
Copyright © 2011-2022 走看看