链表从尾到头返回数组

从尾到头打印链表

https://www.nowcoder.com/practice/d0267f7f55b3412ba93bd35cfa8e8035?tpId=13&tqId=11156&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking

输入一个链表,按链表从尾到头的顺序返回一个ArrayList。
分析1:从尾到头,想到堆栈。

class Solution {
vector <int>  result;          
public:
    vector<int> printListFromTailToHead(ListNode* head) {
        //堆栈
            stack<int> s1;
            ListNode* p=head;
            while(p!=NULL)
             {
               s1.push(p->val);//依次把链表节点的值插入到堆栈中
               p=p->next;
             }
             int len=s1.size();
            for(int i=0;i<len;i++)
             {
                result.push_back(s1.top());  //返回到arrayList
                s1.pop();
              }
   }
};

分析2:利用递归

        vector<int> value;//最好定义在外面
        ListNode *p=NULL;
        p=head;
        if(p!=NULL){
            if(p->next!=NULL){
                printListFromTailToHead(p->next);
            }
            value.push_back(p->val);
        }
        return value;*/
全部评论

相关推荐

点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
昨天 10:38
实力求职者:真的绷不住了,第一张霸总人设,第二张求生欲拉满
点赞 评论 收藏
分享
牛客44320985...:你的当务之急是把这个糖的要死的沟槽ide主题改了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务