剑指Offers 题目1511:从尾到头打印链表

题目1511:从尾到头打印链表

题解报告:方法一、链表创建,头插法,方法二、运用栈,注意栈可能溢出~!

#include <iostream>
#include <stack>
#include <cstdio>
using namespace std;
// stack
int main()
{
          int num;
         stack<int> List;
        while(scanf("%d", &num) && num !=-1){

             List.push(num);

         }
          while(!List.empty()){
           printf("%d\n", List.top());
           List.pop();
         }

       return 0;
}

/**************************************************************
    Problem: 1511
    User: qiu0130
    Language: C++
    Result: Accepted
    Time:80 ms
    Memory:1916 kb
****************************************************************/

#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
typedef struct Lnode{
    int data;
    struct Lnode *next;

}Lnode;

// 头插法
int main()
{
         int num;
        Lnode *List = (Lnode *)malloc(sizeof(Lnode));
          List->data = 0;
          List->next=NULL;
        while(scanf("%d", &num)&&num!=-1){
                   Lnode *p= (Lnode *)malloc(sizeof(Lnode));
                   p->data = num;
                   p->next = List->next;
                   List->next = p;

         }
           Lnode *p = List->next;
           while(p != NULL){
             printf("%d\n", p->data);
                 p=p->next;
            }

       return 0;
}

/**************************************************************
    Problem: 1511
    User: qiu0130
    Language: C
    Result: Accepted
    Time:90 ms
    Memory:3948 kb
****************************************************************/
时间: 2024-10-17 18:46:23

剑指Offers 题目1511:从尾到头打印链表的相关文章

Java链表常见操作【剑指Offer】03:从尾到头打印链表

题目描述 输入一个链表,按链表从尾到头的顺序返回一个ArrayList. 题解一:递归 1 /* 2 在最后一次递归方法返回以后,每一层的递归方法都会做一个arrayList.add(listNode.val)这个操作, 3 从最后一次到第一次,逆向的调用了后面的方法 4 */ 5 static ArrayList<Integer> list = new ArrayList<>(); 6 public static ArrayList<Integer> printLis

剑指offer(3):从尾到头打印单链表

输入一个链表,从尾到头打印链表每个节点的值. /** * struct ListNode { * int val; * struct ListNode *next; * ListNode(int x) : * val(x), next(NULL) * } * }; */ class Solution { public: vector<int> printListFromTailToHead(ListNode* head) { vector<int> inverse; stack&l

《剑指Offer》题目——从尾到头打印链表

题目描述:输入一个链表,从尾到头打印链表每个节点的值. 题目分析:用栈:Java用Stack不如用Deque接口,原因可以见链接:http://stackoverflow.com/questions/12524826/why-should-i-use-deque-over-stack public class ReverseList { class ListNode{ int val; ListNode next = null; ListNode(int val){ this.val = val

剑指offer | 从尾到头打印链表

题目描述: “输入一个链表,从尾到头打印链表每个节点的值.” 这是我做的<剑指offer>系列的第一题,好的开头就是成功的一半.然而,我提交了一次,WA!再提交,WA!Com'on! 看来我的开端并不顺利.不过我要的可不是成功的一半,这样的开端怎么能阻挡我AC之路!仔细看了一遍题目要求,看了提交格式.再提交! Finally,AC! 代码如下: 1 /** 2 * struct ListNode { 3 * int val; 4 * struct ListNode *next; 5 * Lis

九度oj题目1511:从尾到头打印链表

题目1511:从尾到头打印链表 时间限制:1 秒 内存限制:128 兆 特殊判题:否 提交:6010 解决:1805 题目描述: 输入一个链表,从尾到头打印链表每个节点的值. 输入: 每个输入文件仅包含一组测试样例.每一组测试案例包含多行,每行一个大于0的整数,代表一个链表的节点.第一行是链表第一个节点的值,依次类推.当输入到-1时代表链表输入完毕.-1本身不属于链表. 输出: 对应每个测试案例,以从尾到头的顺序输出链表每个节点的值,每个值占一行. 样例输入: 1 2 3 4 5 -1 样例输出

【剑指offer】Q5:从尾到头打印链表

可以练习下链表的逆置. def PrintListReversingly(head): if head == None: return if head: PrintListReversingly(head.next) print head.val def reverse(head): if head == None or head.next == None: return head psuhead = ListNode(-1) while head: nexthead = head.next h

LeetCode | 面试题06. 从尾到头打印链表【剑指Offer】【Python】

LeetCode 面试题06. 从尾到头打印链表[剑指Offer][Easy][Python][链表] 问题 力扣 输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回). 示例 1: 输入:head = [1,3,2] 输出:[2,3,1] 限制: 0 <= 链表长度 <= 10000 思路 解法一 reverse函数 时间复杂度: O(n),n为 head 链表长度. 空间复杂度: O(n),n为 head 链表长度. Python3代码 # Definition for si

《剑指offer》— JavaScript(3)从尾到头打印链表

从尾到头打印链表 题目描述 输入一个链表,从尾到头打印链表每个节点的值. 实现代码 /*function ListNode(x){ this.val = x; this.next = null; }*/ function printListFromTailToHead(head) { var res=[]; while(head){ res.unshift(head.val); head=head.next; } return res; } 相关知识 创建一个链表,并实现插入,删除,添加的方法

从尾到头打印链表-剑指Offer

从尾到头打印链表 题目描述 输入一个链表,从尾到头打印链表每个节点的值 输入描述 输入为链表的表头 输出描述 输出为需要打印的“新链表”的表头 思路 单向链表是从头到尾指向的,从尾到头打印符合“后进先出”,所以我们使用栈结构Stack 代码 import java.util.ArrayList; import java.util.Stack; public class Solution03 { public ArrayList<Integer> printListFromTailToHead(