[剑指Offer]6-从尾到头打印链表
典型的后进先出,可以借助栈,也可以使用递归。
考虑到若链表过长递归可能造成函数调用栈溢出,所以使用栈更好。
注意stack无遍历操作,全部用push(),pop(),top()完成。
以下创建列表胡乱写例子,主要练习链表倒序输出功能。
#include <iostream>
#include <stack>
using namespace std;
typedef struct List{
    int value;
    List *pNext;
    List(){
        value=0;
        pNext=NULL;
    }
}List;
List* createListTest(){
    List *pHead;
    List *pNode1=new List();
    List *pNode2=new List();
    pNode1->value=1;
    pNode1->pNext=pNode2;
    pNode2->value=2;
    pNode2->pNext=NULL;
    pHead=pNode1;
    pNode1=NULL;
    return pHead;
}
//倒序打印链表
void printListReverse(List *pHead){
    stack<int> s;
    if(pHead==NULL){
        return;
    }
    List *p=pHead;
    while(p){
        s.push(p->value);
        p=p->pNext;
    }
    while(!s.empty()){
        int value=s.top();
        cout<<value<<endl;
        s.pop();
    }
}
int main() {
    List *pTest1=createListTest();
    List *pTest2=NULL;
    printListReverse(pTest1);
    //printListReverse(pTest2);
    cout<<"finish!"<<endl;
    return 0;
}
[剑指Offer]6-从尾到头打印链表的更多相关文章
- 《剑指offer》从尾到头打印链表
		本题来自<剑指offer> 从尾到头打印链表 题目: 输入一个链表,按链表值从尾到头的顺序返回一个ArrayList. 思路: 方案一:首先遍历到尾部,然后从尾部进行到头值进行操作,后进先 ... 
- 菜鸟刷题路:剑指 Offer 06. 从尾到头打印链表
		剑指 Offer 06. 从尾到头打印链表 class Solution { public int[] reversePrint(ListNode head) { Stack<Integer&g ... 
- 力扣 - 剑指 Offer 06. 从尾到头打印链表.md
		题目 剑指 Offer 06. 从尾到头打印链表 思路1(递归) 首先先遍历整个脸表,计算出链表的长度(用于初始化数组).然后进行递归,从链表头部递归到尾部,这期间什么都不做,直到递归到最后一个节点的 ... 
- 【Java】 剑指offer(5) 从尾到头打印链表
		本文参考自<剑指offer>一书,代码采用Java语言. 更多:<剑指Offer>Java实现合集 题目 输入一个链表的头结点,从尾到头反过来打印出每个结点的值.结点定义如下: ... 
- Go语言实现:【剑指offer】从尾到头打印链表
		该题目来源于牛客网<剑指offer>专题. 输入一个链表,按链表从尾到头的顺序返回一个ArrayList. Go语言实现: type ListNode struct { Val int ... 
- [剑指Offer] 3.从尾到头打印链表
		题目描述 输入一个链表,从尾到头打印链表每个节点的值. [思路]用一个vector存储,遍历链表时每次从前面插入 /** * struct ListNode { * int val; * struct ... 
- [剑指offer]6.从尾到头打印链表+18.删除链表节点
		链表 6.从尾到头打印链表 输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回). 方法一 迭代 创建空列表res,将链表值head.val依次存进res,返回翻转后的res 代码 cl ... 
- 剑指 Offer 06. 从尾到头打印链表
		链接:https://leetcode-cn.com/problems/cong-wei-dao-tou-da-yin-lian-biao-lcof/ 标签:链表 题目 输入一个链表的头节点,从尾到头 ... 
- 剑指offer:从尾到头打印链表
		题目 输入一个链表,按链表值从尾到头的顺序返回一个ArrayList. 解题思路 在不改变链表结构的前提下,因为单向链表本身的结构是从头到尾的,现在用从尾到头遍历打印,可以联想到“先进后出”, 因此我 ... 
- 剑指Offer 3. 从尾到头打印链表 (链表)
		题目描述 输入一个链表,按链表值从尾到头的顺序返回一个ArrayList. 题目地址 https://www.nowcoder.com/practice/d0267f7f55b3412ba93bd35 ... 
随机推荐
- Java 判断当前系统为Window或者Linux
			public static boolean isOSLinux() { Properties prop = System.getProperties(); String ... 
- 07_组件三大属性(1)_state
			<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ... 
- jquery接触初级-----ajax 之:load()方法
			jquery _ajax 请求主要有几种方式:load(),$.get(),$.post(),$.ajax(),$.getScript(),$.getJson() 1.load()方法 格式:load ... 
- 尚硅谷springboot学习3-helloworld程序
			1.环境准备 –jdk1.8:Spring Boot 推荐jdk1.7及以上:java version "1.8.0_112" –maven3.x:maven 3.3以上版本:Ap ... 
- Linux性能测试分析命令_top
			top命令动态展示系统整体资源和各个进程资源占用状况,是Linux下常用的性能分析工具. top命令语法 使用格式:top [-] [d] [b] [H] [p] [q] [c] [C] [S] [s ... 
- LeetCode OJ 89. Gray Code
			题目 The gray code is a binary numeral system where two successive values differ in only one bit. Give ... 
- 将IP地址字符串转为32位二进制
			def str2bin(s): temp = s.split('.') result = '' for i in range(len(temp)): temp[i] = str(bin(int(tem ... 
- 18. socket io
			类似dataservice 我们socket io 和后端交互 我们也可以做成专门的service 我们先引入 为什么不是cdn呢? 因为client就是从我们的server端拿到的socket.io ... 
- 开发一个FTP软件
			一.开发一个多并发的FTP server 需求: .允许同时支持多用户在线 .用户认证 .用户空间配额 .权限限制 .可上传下载.上传下载过程中显示进度条 .用户可远程切换目录.查看服务端文件列表等 ... 
- ROS:ROS操作类MK.cs
			class MK { Stream connection; TcpClient con; public MK(string ip,int port) { con = new TcpClient(); ... 
