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

    【问题】输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。

    【思路】看到这个题目,一般都可以想到堆栈结构,遍历所有节点压入栈中,然后在依次弹出即可,但这样就会使用额外空间,效率不高!另一种方法是使用DFS(深度优先)的方法,并利用递归来实现,递归终止条件为p的next为NULL就终止。

    /**
    *  struct ListNode {
    *        int val;
    *        struct ListNode *next;
    *        ListNode(int x) :
    *              val(x), next(NULL) {
    *        }
    *  };
    */
    class Solution {
    public:
        vector<int> res;    //注意将vector放置全局变量
        vector<int> printListFromTailToHead(ListNode* head) {
    
            ListNode *p=nullptr;
            p=head;
            if(p!=NULL){
                if(p->next!=nullptr){
                    printListFromTailToHead(p->next);
                }
                res.push_back(p->val);
            }
            return res;
        }
    };
  • 相关阅读:
    leetcode刷题笔记303题 区域和检索
    leetcode刷题笔记301题 删除无效的括号
    20201208日报
    20201118日报
    20201117日报
    20201116日报
    20201115日报
    20201114日报
    20201113日报
    20201112日报
  • 原文地址:https://www.cnblogs.com/zhudingtop/p/11291277.html
Copyright © 2011-2022 走看看