zoukankan      html  css  js  c++  java
  • 华为面试题——单向链表倒转(一次遍历)

    /*
        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;
        }
    }


  • 相关阅读:
    DNS 服务器的配置与管理
    为什么苹果不再需要谷歌地图?
    flash安装时提示无法安装解决方法
    苹果新ipad支持siri吗?答案是不支持!
    HTTP的 Basic 验证
    笑解优酷土豆合并
    crontab简介
    循环链表应用
    计算表达式
    走迷宫 dfs
  • 原文地址:https://www.cnblogs.com/jiangxinnju/p/5516889.html
Copyright © 2011-2022 走看看