1. 题目描述
输入一个链表,反转链表后,输出新链表的表头。
2. 解题思路
(1)可以用两个指针改变指向,就是让下一个指向上一个,遍历整个链表即可。此方法时间复杂度相对好点O(n)。也可以用递归实现,我考虑资源浪费情况就用循环了。
(2)其实如果实在不行就直接遍历一遍把所有结点都存起来到集合中,然后再从后往前遍历连接起来即可。
3. 代码实现
(1)
public class Solution {
public ListNode ReverseList(ListNode head) {
if (head == null){
return null;
}
ListNode temp = null;
while(head != null){
ListNode node = head.next;
head.next = temp;
temp = head;
head = node;
}
return temp;
}
}
(2)
…