3.12(反转单结点)

原创 2016年08月30日 14:31:04
#include <iostream>
#include <stdlib.h>
#define MAX 5
using namespace std;
typedef struct node
{
    int num;
    struct node* pnext;
}qnode,*pnode;
pnode init()
{
    pnode head;
    head=(pnode)malloc(sizeof(qnode));
    head->pnext=NULL;
    return head;
}
void puts(pnode head,int e)
{
    pnode q,p;
    q=head;
    while(q->pnext!=NULL)
    {
        q=q->pnext;
    }
    p=(pnode)malloc(sizeof(qnode));
    p->num=e;
    p->pnext=NULL;
    q->pnext=p;
}
pnode rotate(pnode head)//新建一个链表head_,把head的第一个结点放入head_,head指向下一个结点
{
    pnode head_,q;
    head_=init();
    while(head->pnext!=NULL)
    {
        q=head->pnext;
        head->pnext=q->pnext;
        q->pnext=head_->pnext;
        head_->pnext=q;
    }
    return head_;
}
void traverse(pnode head)
{
    pnode q=head->pnext;
    while(q!=NULL)
    {
        cout<<q->num;
        q=q->pnext;
    }
}
int main()
{
    pnode head,head_;
    head=init();
    puts(head,1);
    puts(head,2);
    puts(head,3);
    head_=rotate(head);
    traverse(head_);
    return 0;
}
http://www.cnblogs.com/pianoid/archive/2011/05/03/reverse-a-singly-linked-list.html
版权声明:本文为博主原创文章,未经博主允许不得转载。

数据结构_不带头结点的链表逆制

1:以前写的都是带有头节点的链表的逆制,其思想是:把头节点后的后一个节点摘下来进行头插就可以了,实现的方法也不难,只需要两个指针就可以实现,而我这主要实现的是不带头节点的链表,而且时间复杂度位O(n)...
  • zhou753099943
  • zhou753099943
  • 2015年10月26日 19:22
  • 885

PAT乙级练习题B1025.反转链表

题目描述给定一个常数K以及一个单链表L,请编写程序将L中每K个结点反转。例如:给定L为1→2→3→4→5→6,K为3,则输出应该为3→2→1→6→5→4;如果K为4,则输出应该为4→3→2→1→5→6...
  • muketangzhu
  • muketangzhu
  • 2016年06月29日 18:53
  • 668

编程题目: PAT 1025. 反转链表 (25)

1025. 反转链表 (25) 时间限制 300 ms 内存限制 32000 kB 代码长度限制 8000 B 判...
  • zhangyalin1992
  • zhangyalin1992
  • 2014年07月04日 20:26
  • 2228

定义一个函数,输入一个链表的头结点,反转该链表并输出反转后链表的头结点。

题目:定义一个函数,输入一个链表的头结点,反转该链表并输出反转后链表的头结点。  假设有链表A->B->C->D->E->F->G。在反转链表过程中的某一阶段,其链表指针指向为:AF->G。也就是...
  • jdx888
  • jdx888
  • 2016年09月07日 11:07
  • 1286

反转单链表 (三种方法整理)

题目:反转单链表 输入一个链表,反转链表后,输出链表的所有元素。 据找工作的师兄说,反转单链表基本各个公司面试都会有,整理出一些写的比较好的code,供我等小白们学习。简洁,清晰,...
  • hyqsong
  • hyqsong
  • 2015年10月26日 21:15
  • 19052

剑指Offer面试题16(Java版):反转链表

题目:定义一个函数,输入一个链表的头结点,反转该链表并输出反转后链表的头结点。 解决与链表相关的问题总是有大量的指针操作,而指针操作的代码总是容易出错的。很多的面试官喜欢出链表相关的问题,就是想通过指...
  • jsqfengbao
  • jsqfengbao
  • 2015年08月01日 16:45
  • 1384

数据结构——反转单链表

最近看了《剑指offer》这本书,遇到了一个问题:反转链表 题目:定义一个函数,输入一个链表的头结点,反转该链表并输出反转后的链表的头结点。 链表结点定义如下:struct ListNode { ...
  • u013271921
  • u013271921
  • 2015年06月05日 22:17
  • 3033

Java单链表反转 详细过程

Java单链表反转 Java实现单链表翻转 使用递归法实现单链表反转,使用遍历反转法:递归反转法是从后往前逆序反转指针域的指向,而遍历反转法是从前往后反转各个结点的指针域的指向。     【尊重原创,...
  • guyuealian
  • guyuealian
  • 2016年04月11日 10:36
  • 29153

实现无头结点单链表的基本操作函数

基于单链表经常见的面试题——基础篇 基于单链表的面试题——进阶篇什么是无头结点链表??? singlelinkedlist.h头文件#ifndef __SINGLELINKEDLIST_H__ ...
  • Quinn0918
  • Quinn0918
  • 2017年06月09日 17:29
  • 1014

单链表的反转(递归)

单项链表的反转指的是这样一类问题:给定一个单项链表的头指针 head,写一个算法,将其反转,并返回新的头指针 newHead。 注意点: (1)一般我们构建的单链表有两种,第一种是有头节点的单链表...
  • cyuyanenen
  • cyuyanenen
  • 2016年05月22日 10:15
  • 1088
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:3.12(反转单结点)
举报原因:
原因补充:

(最多只允许输入30个字)