【剑指Offer】从尾到头打印链表 解题报告

来源:互联网 发布:詹姆斯生涯所有数据 编辑:程序博客网 时间:2024/06/05 18:58

【剑指Offer】从尾到头打印链表 解题报告

标签(空格分隔): LeetCode


题目地址:https://www.nowcoder.com/ta/coding-interviews

题目描述:

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

Ways

先存到ArrayList里再反转,不算作弊吧。

/***    public class ListNode {*        int val;*        ListNode next = null;**        ListNode(int val) {*            this.val = val;*        }*    }**/import java.util.*;public class Solution {    public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {        ArrayList<Integer> list = new ArrayList<Integer>();        while(listNode != null){            list.add(listNode.val);            listNode = listNode.next;        }        Collections.reverse(list);        return list;    }}

用递归方法:

import java.util.*;public class Solution {    ArrayList<Integer> list = new ArrayList<Integer>();    public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {        if(listNode != null){            printListFromTailToHead(listNode.next);            list.add(listNode.val);        }        return list;    }}

另外的解法,直接插入到头部就行了啊。

import java.util.*;public class Solution {    public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {        ArrayList<Integer> list = new ArrayList<Integer>();        while(listNode != null){            list.add(0, listNode.val);            listNode = listNode.next;        }        return list;    }}

Date

2017 年 4 月 20 日

0 0
原创粉丝点击