首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >华为面试题——单向链表倒转(一次遍历)

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

作者头像
用户1221057
发布2018-01-31 16:23:18
6300
发布2018-01-31 16:23:18
举报
文章被收录于专栏:Aloys的开发之路Aloys的开发之路
/*
     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;
     }
 }
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2014-08-11 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档