public ListNode ReverseList(ListNode head)
{
if (head == null)
return null;
Stack < ListNode > stack = new Stack < ListNode > ();
ListNode temp = head;
do {
stack.push(temp);
temp = temp.next;
} while (temp != null);
//关键在于这里,原来的头结点的next要置为空,否则导致遍历时无限循环
head.next = null;
ListNode root = stack.pop();
ListNode node = root;
while (!stack.isEmpty())
{
node.next = stack.pop();
node = node.next;
}
return root;
}
用栈反转链表0708
最新推荐文章于 2023-05-30 17:51:04 发布