戴璞微的博客

简单点!做事的动机简单点

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

输入一个链表,从尾到头打印链表每个节点的值。


思路:
遍历整个链表,依次入栈。遍历结束后,再一次出栈即可。


Java代码如下:

import java.util.ArrayList;
import java.util.Stack;

class ListNode {
       int val;
        ListNode next = null;

        ListNode(int val) {
            this.val = val;
        }
    }

public class Solution {
    public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
        Stack<Integer> stack = new Stack<Integer>();
        ArrayList<Integer> list = new ArrayList<Integer>();
        while(listNode != null){
            stack.add(listNode.val);
            listNode = listNode.next;
        }

        while(!stack.isEmpty()){
            list.add(stack.pop());
        }

        return list;
    }
}

C++代码如下:

#include <vector>
#include <stack>
using namespace std;

/**
*  struct ListNode {
*        int val;
*        struct ListNode *next;
*        ListNode(int x) :
*              val(x), next(NULL) {
*        }
*  };
*/

class Solution {
public: 
    vector<int> printListFromTailToHead(ListNode* head) {
       stack<int> s;
       vector<int> list;
       ListNode *p = head;
       while(p){
           s.push(p->val);
           p = p->next;
       }
       while(!s.empty()){
          list.push_back(s.top());
          s.pop();
       } 
       return list;
    }
};
阅读更多
版权声明:本文为博主原创文章,若需转载,请注明http://blog.csdn.net/qq_30091945 https://blog.csdn.net/qq_30091945/article/details/69325947
文章标签: 剑指offer
个人分类: 面试真题在线编程
所属专栏: 剑指offer题解
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭