【题目】
定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。
【示例】
输入: 1->2->3->4->5->NULL
输出: 5->4->3->2->1->NULL
【思路】
遍历链表,保存到list中
再次遍历链表,倒序放入链表中
【代码】
public static ListNode reverseList(ListNode head) {
List<Integer> temp = new ArrayList<>();
ListNode p = head;
while (p != null){
temp.add(p.val);
p = p.next;
}
ListNode pr = head;
for (int i = temp.size() - 1; i >= 0; i--) {
pr.val = temp.get(i);
pr = pr.next;
}
return head;
}