题解 | #反转链表#
反转链表
https://www.nowcoder.com/practice/75e878df47f24fdc9dc3e400ec6058ca
import java.util.*;
// public class ListNode {
// int val;
// ListNode next = null;
// public ListNode(int val) {
// this.val = val;
// }
// }
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param head ListNode类
* @return ListNode类
*/
public ListNode ReverseList (ListNode head) {
// write code here
Stack<ListNode> stack = new Stack<>();
//将链表全部push放到栈中
while(head!=null){
stack.push(head);
//取链表中的下一个节点
head = head.next;
}
if(stack.isEmpty()){
return null;
}
//取出头结点
ListNode node = stack.pop();
ListNode result = node;
while(!stack.isEmpty()){
node.next = stack.pop();
node = node.next;
}
node.next = null;
return result;
}
}

