链表反转
如某链表为{1,2,3},想要使其反转成{3,2,1}。可考虑栈存储;总所周知,栈遵循的存取规则为先进后出。
//1、取出链表中的节点进栈
public class Solution {
public ListNode ReverseList(ListNode head) {
Stack<ListNode> stack = new Stack<>();
//取出链表中的节点进栈
while(head!=null){
stack.push(head);
head = head.next;
}
if(stack.isEmpty()){
return null;
}
//将栈中的元素取出,连接成新的链表
ListNode node = stack.pop();
ListNode newHead = node;
while(!stack.isEmpty()){
node.next = stack.pop();
node = node.next;
}
node.next=null;
return newHead;
}
}