您的位置:首页 > Web前端

【剑指Offer】003 从尾到头打印链表

2018-02-10 14:02 369 查看
【剑指Offer】003 从尾到头打印链表
题目链接: 剑指Offer 第三题 牛客网
题目描述:
输入一个链表,从尾到头打印链表每个节点的值。

题目很简单,但值得注意的是,要求要从尾到头打印,当时写了半天,一看,我擦。。。
思路有两个:一个是利用递归,或者栈,当然,递归也是用栈来实现的;
                    另一个是用特里所给定的库函数操作,这里就不详细写了。

递归 C++版:/**
* struct ListNode {
* int val;
* struct ListNode *next;
* ListNode(int x) :
* val(x), next(NULL) {
* }
* };
*/
class Solution {
public:
vector<int>v;
vector<int> printListFromTailToHead(ListNode* head) {
if(head!=NULL)
{
if (head->next!=NULL)
{
printListFromTailToHead(head->next);
}
v.push_back(head->val);

}
return v;
}
};递归 Java版:
/**
*    public class ListNode {
*        int val;
*        ListNode next = null;
*
*        ListNode(int val) {
*            this.val = val;
*        }
*    }
*
*/
import java.util.ArrayList;
public class Solution {
ArrayList<Integer>arr=new ArrayList<Integer>();
public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
if(listNode!=null)
{
this.printListFromTailToHead(listNode.next);
arr.add(listNode.val);
}
return arr;
}
}
其实这两个是不是差不多阿,就是递归的思想,只不过C++有指针,而Java没有而已。

日期:2018/2/10-14:18
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  链表