剑指Offer面试题:4.从尾到头打印链表
一 题目:从尾到头打印链表
题目:输入一个链表的头结点,从尾到头反过来打印每个结点的值。
代码实现
采用两种方法实现:
(1) 不修改原列表,使用stack的方式实现
(2)修改原列表,对元列表逆序
两种方法都在下面的代码中:
struct Node {int data;Node* pNext; };class ListEx { private:Node *m_pHead;Node *m_pTail; public:ListEx(){m_pHead = NULL;m_pTail = NULL;}~ListEx(){Node *pNode = m_pHead;Node *pNext = NULL;while(pNode){pNext = pNode->pNext;delete pNode;pNode = pNext;}m_pHead = NULL;m_pTail = NULL;}void add(int data){Node *pNode = new Node;pNode->data = data;pNode->pNext = NULL;if (!m_pHead){m_pTail = m_pHead = pNode;}m_pTail->pNext = pNode;m_pTail = pNode;}Node* GetHead() {return m_pHead;}// 改变链表的内容,将其逆序void ReserveList(){m_pTail = m_pHead;Node *p1 = m_pHead;Node *p2 = p1->pNext;p1->pNext = NULL; //关键位置Node *pTemp = NULL; while (p1 && p2){pTemp = p2->pNext; // 关键位置p2->pNext = p1;p1 = p2;p2 = pTemp;}m_pHead = p1;} };// 从尾打印链表 void PrintList(Node *pHead) {stack<int> NodeStack;Node *pNode = pHead;while (pNode){NodeStack.push(pNode->data);pNode = pNode->pNext;}while (!NodeStack.empty()){cout << NodeStack.top();NodeStack.pop();}cout << endl; }void main() {ListEx list;list.add(1);list.add(2);list.add(3);list.add(4);list.add(5);list.add(6);list.add(7);list.add(8);list.add(9);Node *pHead = list.GetHead();cout << "不修改原列表,使用stack方法:" << endl;PrintList(pHead);list.ReserveList();cout << "修改原列表,将原列表逆序:" << endl;pHead = list.GetHead();PrintList(pHead);return; }
转载于:https://www.cnblogs.com/xiaobingqianrui/p/8808816.html
剑指Offer面试题:4.从尾到头打印链表相关推荐
- 剑指offer面试题[5]-从尾到头打印链表
目描述 输入一个链表,从尾到头打印链表每个节点的值. /** * struct ListNode { * int val; * struct ListNode *next ...
- 剑指Offer - 面试题6. 从尾到头打印链表(栈,递归,反转链表)
文章目录 1. 题目 2. 解题 2.1 stack解题 2.2 递归 2.3 反转链表 1. 题目 输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回). 示例 1: 输入:head ...
- 剑指offer 面试题5—从尾到头打印链表
题目: 输入一个链表的头结点,从尾到头反过来打印出每个结点的值. 考虑用栈 public void invertedList1(ListNode head) {if (head == null) {r ...
- 剑指offer面试题06. 从尾到头打印链表(辅助栈法)
题目描述 输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回). 思路 详见链接 代码 class Solution:def reversePrint(self,head:ListNod ...
- 剑指Offer - 九度1511 - 从尾到头打印链表
剑指Offer - 九度1511 - 从尾到头打印链表2013-11-29 21:08 题目描述: 输入一个链表,从尾到头打印链表每个节点的值. 输入: 每个输入文件仅包含一组测试样例. 每一组测试案 ...
- 剑指offer java版 test3—从尾到头打印链表
标题:剑指offer java版 test3-从尾到头打印链表 题目:输入一个链表,按链表从尾到头的顺序返回一个ArrayList. 解答:知识不够全面,用ArrayList做的 但是看到大佬们还可以 ...
- 【剑指offer】登峰造极之从尾到头打印链表
题目链接 从尾到头打印链表. 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M 热度指数:1254529 题目描述 /** struct ListNode { i ...
- 剑指offer(C++)-JZ6:从尾到头打印链表(数据结构-链表)
作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 题目描述: 输入一个链表的头节点,按链表从尾到头的顺序返回每个节点的值(用数组返回). 如输入{ ...
- 【剑指offer-Java版】05从尾到头打印链表
从头到尾打印链表:递归实现比较简单 注意处理异常输入:如输入指针为空 处理边界条件等即可 public class _Q05 {public static void main(String[] arg ...
- 剑指offer——面试题60:把二叉树打印成多行
剑指offer--面试题60:把二叉树打印成多行 Solution1: 20180911重做.经典题目.牢记做法! /* struct TreeNode {int val;struct TreeNod ...
最新文章
- 【深度学习】Keras实现回归和二分类问题讲解
- 6.1 从分析到设计
- mysql查看binlog日志内容
- flex 底部固定_小猿圈网站页面底部固定的方法
- python模块datetime_Python模块-datetime
- ASP+Access+Dreamweaver+IIS搭建简单数据库管理系统_第一章_前言
- SpringBoot实现文件在线预览
- 使用CURL抓取https网页报错的一种解决方法
- 尺度空间-多尺度特征空间
- badboy设置中文_badboy中文手册
- Unified diagnostic services (UDS)
- 常用的背景色、文字颜色
- Django3在网页上生成二维码
- Python实现BP神经网络ANN单隐层回归模型项目实战
- shienblink 振动/敲击检测传感器详解
- html获取cookie数据,cookies数据是什么意思?
- 互斥锁(排它锁、独占锁、写锁、X锁)和共享锁(读锁、S锁) 自旋锁
- properties中文乱码快速处理
- 监听文本框输入开发仿新浪微博限制输入字数的textarea插件。
- linux服务器更改欢迎界面
热门文章
- 如何成为一个Linux内核开发者
- 报错:“-bash: git: 未找到命令”
- 简单递归题目分析与解答
- HTML下拉菜单去掉点,jQuery点击页面其他部分隐藏下拉菜单功能
- java父类子类顺序_java父类子类內部程序的执行顺序
- 便携式不锈钢管道焊接机器人_为什么越来越多的不锈钢管件用不锈钢焊管制作...
- alter table move与shrink space
- javax.xml.datatype.XMLGregorianCalendar
- spring3依赖包下载
- SQL Error: 957, SQLState: 42000 ORA-00957: duplicate column name