zoukankan      html  css  js  c++  java
  • 剑指offer 从尾到头打印链表

    题目:输入一个链表,按链表从尾到头的顺序返回一个ArrayList。

    代码:

    //迭代库函数实现
    class Solution {
    public:
        vector<int> printListFromTailToHead(ListNode* head) {
            vector<int> ArrayList;
            while(head != NULL){
                ArrayList.insert(ArrayList.begin(), head ->val);
                head = head ->next;
            }
            return ArrayList;
        }
    };
    //递归实现
    class Solution {
    public:
        vector<int> ArrayList;
        vector<int> printListFromTailToHead(ListNode* head) {
            ListNode* p;
            p = head;
            if( p != NULL ){
                if( p ->next != NULL){
                    printListFromTailToHead(p ->next);
                }
                ArrayList.push_back(p ->val);
            }
            return ArrayList;
        }
    };

    我的笔记:迭代实现,需要注意每一次迭代循环后都要将当前指针指向下一个位置。递归实现,需要注意将数组ArrayList设为类中的公有变量,否则在每次递归时都会重新定义数组,使得无法存储变量,利用递归实现就是将链表所有值入栈,再依次出栈的原理。

  • 相关阅读:
    Docker之概述
    redis命令
    spring mvc(1) 为什么要使用mvc
    学习到的
    HttpWebRequest简单使用
    推手总结
    react 生命周期
    利用反射对应数据库字段
    扩展方法
    发送请求并返回
  • 原文地址:https://www.cnblogs.com/john1015/p/12897065.html
Copyright © 2011-2022 走看看