反转链表
题目描述:
输入一个链表,反转链表后,输出链表的所有元素。
解题思路:
这和之前的一道题“从尾到头打印链表”方法上有一些类似,我这里也是借助栈来实现的。
下面是我的Java源代码:
/*
public class ListNode {
int val;
ListNode next = null;
ListNode(int val) {
this.val = val;
}
}*/
import java.util.Stack;
public class Solution {
public ListNode ReverseList(ListNode head) {
if(null == head){
return null;
}
ListNode node = head;
Stack<Integer> stack = new Stack<Integer>();
while(null != node){
stack.push(node.val);
node = node.next;
}
ListNode result = null;
if(!stack.isEmpty()){
result = new ListNode(stack.pop());
}
head = result;
while(!stack.isEmpty()){
result.next = new ListNode(stack.pop());
result = result.next;
}
return head;
}
}