题目描述
输入一个链表,反转链表后,输出新链表的表头。
解题思路
本题我采用的思想是先创建一个Stack,然后从头遍历链表然后将所有的结点的值取出来push到Stack中,然后对链表再进行一次从头遍历进行赋值,赋值为Stack每次Pop出的值,这样就实现了链表的反转。
题目链接.
代码块
以下是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) {
ListNode p=head;
Stack<Integer> stack=new Stack<Integer>();
while(p!=null){
stack.push(p.val);
p=p.next;
}
p=head;
while(p!=null){
p.val=stack.pop();
p=p.next;
}
return head;
}
}