栈oj---->从尾到头打印链表
Posted ohana!
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了栈oj---->从尾到头打印链表相关的知识,希望对你有一定的参考价值。
题目描述:
解题代码:
方法一:使用栈的特性解决
思路:将链表结点的value值依次入栈,在用特性“后进先出”,再依次出栈
class Solution {
public int[] reversePrint(ListNode head) {
// 方法一:
ListNode cur = head;
Stack<Integer> s = new Stack<>();
while(cur != null){
s.push(cur.val);
cur = cur.next;
}
int[] array = new int[s.size()];
for(int i = 0;i < array.length;i++){
array[i] = s.pop();
}
return array;
}
}
方法二:使用普通数组解决
思路:将链表结点的value值赋给数组,然后,将数组的逆序后,直接返回,代码比较冗杂
class Solution {
public int[] reversePrint(ListNode head) {
//方法二:
ListNode cur = head;
int count = 0;
while(cur != null){
count++;
cur = cur.next;
}
cur = head;
int[] array = new int[count];
for(int i = 0;i < count;i++){
array[i] = cur.val;
cur = cur.next;
}
int left = 0;
int right = count - 1;
while(left < right){
int temp = array[left];
array[left] = array[right];
array[right] = temp;
left++;
right--;
}
return array;
}
}
以上是关于栈oj---->从尾到头打印链表的主要内容,如果未能解决你的问题,请参考以下文章
LeetCode刷题(158)~从尾到头打印链表递归|辅助栈