题目是:链表操作,单链表就地逆置

分析:

这题只需要设置三个指针就搞定了,ListNode* p 表示当前指针, ListNode* fp: 上一个节点指针, ListNode * ep :下一个节点指针

p ->next = fp;

fp = p;

p = ep

ep = p->next;

具体实现如下:

#include

using namespace std;

struct ListNode{

ListNode(int _v):value(_v), next(NULL){}

int value;

ListNode* next;

void add(ListNode* _ln)

{

if(next == NULL)

next = _ln;

else

next->add(_ln);

}

};

void invertList(ListNode* &root)

{

ListNode *fp, *p, *ep;

p = root;

fp = NULL;

while(p!= NULL)

{

ep = p->next;

p->next = fp;

fp = p;

p = ep;

}

root = fp;

return;

}

int main()

{

ListNode *root = NULL;

ListNode n1(0);

ListNode n2(1);

ListNode n3(2);

ListNode n4(3);

ListNode n5(4);

root = &n1;

root->add(&n2);

root->add(&n3);

root->add(&n4);

root->add(&n5);

ListNode* p = root;

while(p != NULL)

{

cout<< p->value << " " ;

p = p->next;

}

cout << endl;

invertList(root);

cout << "after invert: ";

p = root;

while(p != NULL)

{

cout<< p->value << " " ;

p = p->next;

}

cout << endl;

}

输出结果为:

0 1 2 3 4

after invert: 4 3 2 1 0

java实现单链表就地逆置,20. 微软面试题:单链表就地逆放相关推荐

  1. python实现带头结点的单链表的就地逆置_6-1 带头结点的单链表就地逆置 (10 分)...

    本题要求编写函数实现带头结点的单链线性表的就地逆置操作函数.L是一个带头结点的单链表,函数ListReverse_L(LinkList &L)要求在不新开辟节点的前提下将单链表中的元素进行逆置 ...

  2. python实现带头结点的单链表的就地逆置_带头结点的单链表就地逆置

    本题要求编写函数实现带头结点的单链线性表的就地逆置操作函数.L是一个带头结点的单链表,函数ListReverse_L(LinkList &L)要求在不新开辟节点的前提下将单链表中的元素进行逆置 ...

  3. 设计一代码,逆置带头结点的动态单链表L

    有两种方法: 一是:用头插法建立单链表,自然而然就实现了逆置的动态链表. 代码: #include<stdio.h> #include<malloc.h> typedef in ...

  4. 试编写一个将双向循环链表逆置的算法_图解:链表的快慢指针,解决 80% 的链表面试题!...

    一.前言 链表是基本的数据结构之一,它与数组不同,数组在内存中存储,需要一块连续的内容空间来存储,对内存的要求比较高.例如我们需要 100MB 大小的数组,内存中就必须有一段连续的 100MB 的内存 ...

  5. 微软面试题 单向链表找环

    已知一个单向链表 如何检查这个单向链表中有没有环的存在 例如 a->b->c->d->e->b 就是一个环 我自己能想到的最佳算法就是O(n)的.... 话说这个题目真是 ...

  6. PTA 6-1 单链表逆置

    PTA 6-1 单链表逆置* (20 分) 已知单链表的结点结构定义如下: typedef struct NODE { int data; struct NODE *next; } NODE; 说明: ...

  7. 单链表就地逆置(Java版)

    题目:有一个线性表(a1,a2,a3,...,an),采用带头节点的单链表L存储,设计一个算法将其就地逆置,线性表变为(an,...a3,a2,a1).所谓"就地"指辅助存储空间为 ...

  8. java实现单链表就地逆置,单链表的就地逆置讲解

    { List *q; List *p = L->next; L -> next = NULL; //单链表就地逆置 while (p != NULL) { q = p -> next ...

  9. 链表就地逆置Java_单链表就地逆置(Java版)

    题目:有一个线性表(a1,a2,a3,...,an),采用带头节点的单链表L存储,设计一个算法将其就地逆置,线性表变为(an,...a3,a2,a1).所谓"就地"指辅助存储空间为 ...

最新文章

  1. C# TCPClient简单示例
  2. ups的空开、电缆及电池的配置计算
  3. python提示错误TypeError: 'dict_keys' object does not support indexing
  4. 数据库提示:正在还原中,无法访问 应该怎么办?
  5. 【重点突破】—— React实现富文本编辑器
  6. android代码删除sd卡文件在哪里,android - 如何从SD卡中删除文件?
  7. Visual Studio 2013中因SignalR的Browser Link引起的Javascript错误一则
  8. Java8+函数式开发库Vavr使用入门
  9. 一个事务复制的bug--更新丢失 续
  10. 微信小程序电商实战-购物车(下)
  11. Visual Studio + VAssistX常用快捷键收藏
  12. java 二叉树详解 + 实现代码
  13. nanomsg 高性能通信库_NanoMsg框架|NanoMsg的简介
  14. linux应用开发 — 控制LED设备
  15. css背景图与html插入img的区别,css背景图与html插入img的区别
  16. 网络游戏外挂制作(3)
  17. 查询个人电脑当前公网IP地址
  18. 小米笔记本 wifi linux,被小米笔记本的WiFi坑了一道
  19. RF01 RF环境搭建及简介
  20. 不惑之年一次性通过软考高项的苦与乐

热门文章

  1. Linux驱动视频教程推荐,隆重推荐:linux驱动基础开发系列免费教程独家版本
  2. docker privileged mode
  3. 使用qemu运行银河麒麟操作系统
  4. Python爬虫视频课程:中国女性胸部大小分析-李宁-专题视频课程
  5. 闵行区科技小巨人工程申请条件及奖励政策解读
  6. 网易新闻页面信息抓取(htmlagilitypack搭配scrapysharp)
  7. 用fluent模拟内循环床气化燃烧(调试过程记录)
  8. 自考那些事儿(五):软件开发工具(实践篇)
  9. 多门店共享无人自助洗车系统小程序开发
  10. MCD19A2 MAIAC AOD 数据处理(三)均值+同日镶嵌+重投影(Grid转经纬度)