• 华为面试题——单向链表倒转(一次遍历)


    /*
        Blog:
            http://blog.csdn.net/jiangxinnju
        function:
        将单向链表reverse,如ABCD变成DCBA,只能搜索链表一次
    */
    #include <iostream>

    using namespace std;
    struct node
    {
        char data;
        struct node *next;
    };
    typedef struct node NODE;
    void test_exercise006()
    {
        NODE *head = new NODE; //建立附加头结点
        head->next = NULL;

        /*创建链表*/
        NODE *current,*previous;
        previous = head;
        char input;
        cout << "Input your list table NODE data,end with '#':";
        cin >> input;
        while(input != '#')
        {
            current = new NODE;
            current->data = input;
            current->next = NULL;
            previous->next = current;
            previous = previous->next;
            cout << "Input your list table NODE data,end with '#':";
            cin >> input;
        }

        /*输出链表*/
        current = head->next;
        while(current != NULL)
        {
            cout << current->data << " ";
            current = current->next;
        }
        cout << endl;

        /*倒转链表*/
        current = head->next;
        NODE *p = current->next;
        NODE *q = p->next;
        while(q != NULL)
        {
            p->next = current;
            current = p;
            p = q;
            q = q->next;
        }
        p->next = current;
        current = p;
        head->next->next = NULL;
        head->next = current;

        /*输出链表*/
        current = head->next;
        while(current != NULL)
        {
            cout << current->data << " ";
            current = current->next;
        }
    }


  • 相关阅读:
    CentOS安装node.js-8.11.1+替换淘宝NPM镜像
    【推荐】CentOS安装gcc-4.9.4+更新环境+更新动态库
    申请安装阿里云免费SSL证书
    服务器安全加固
    【推荐】优秀代码
    CenOS登录失败处理功能
    Ubuntu修改密码及密码复杂度策略设置
    mysql 5.7添加server_audit 安全审计功能
    快速安装jumpserver开源堡垒机
    oracle 11g 配置口令复杂度
  • 原文地址:https://www.cnblogs.com/jiangxinnju/p/5516889.html
Copyright © 2020-2023  润新知