题目描述
输入一个链表,反转链表后,输出链表的所有元素。
思路:将链表中的结点入栈,出栈,形成新链表;
public static ListNode ReverseList(ListNode head){
if(head == null)
return null;
else{
Stack<ListNode> stack = new Stack<ListNode>();
ListNode p = head;
while(p != null){
stack.push(p);
p = p.next;
}
ListNode q = stack.pop();
System.out.println(q.val);
ListNode t = q;//需要返回链表头结点,所以重新声明一个指针
while(!stack.empty()){
q.next = stack.pop();
q = q.next;
System.out.println(q.val);
}
q.next = null;
return t;
}
}