请用java中栈实现以下功能,每一行代码都需要详细注解。给你单链表的头节点 head ,请你反转链表,并返回反转后的链表
时间: 2023-03-14 12:05:37 浏览: 104
/**
* 反转链表
*
* @param {Node} head 链表的头节点
* @return {Node} 反转后的链表的头节点
*/
public Node reverseList(Node head) {
Stack<Node> stack = new Stack<>();
while (head != null) {
// 将节点压入栈中
stack.push(head);
// 移动到下一个节点
head = head.next;
}
// 新建一个头节点,用于反转链表
Node newHead = null;
// 循环出栈,反转链表
while (!stack.isEmpty()) {
// 弹出栈顶节点
Node node = stack.pop();
// 将节点next指针指向新的头节点,实现反转
node.next = newHead;
// 将新的头节点指向当前节点
newHead = node;
}
// 返回反转后的链表
return newHead;
}
阅读全文
相关推荐








