单链表翻转---C++实现

来源:互联网 发布:新浪微博数据抓取 编辑:程序博客网 时间:2024/06/11 18:35

本文旨在记录单链表翻转,便于日后学习


代码如下:


#include <iostream>#include <string>using namespace std;struct node{int val;struct node *next;};node *reverse_list(node *p){node *tmp=NULL;while (p){node *k = p->next;p->next = tmp;tmp = p;p = k;}return tmp;}int main(int argc, char *argv[]){string s1;getline(cin,s1);node *head = (node *)malloc(sizeof(node));node *p = head;for (int i = 0; i < s1.size(); i++){p->val = s1[i] - '0';node *new_node = (node *)malloc(sizeof(node));if (i == s1.size() - 1){p->next = NULL;break;}p->next = new_node;p = p->next;}node *k = reverse_list(head);while (k){cout << k->val << " ";k = k->next;}return 0;}


0 0