LeetCode 206:反转链表 Reverse Linked List
反转一个单链表。 Reverse a singly linked list. 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 进阶: 你可以迭代或递归地反转链表。你能否用两种方法解决这道题? Follow up: A linked list can be reversed either iteratively or recursively. Could you implement both? 解题思路: 每次遍历到最后一位取节点这种方法就算了时间复杂度太高。如题目进阶要求的两种方法,迭代和递归: 迭代: 每次分出来一个节点把节点 作为头节点 添加到新链表上: 原链表:1->2->3->4->5 分离第一个节点作为头节点添加到新链表:1 原链表:2->3->4->5 分离下一个节点作为头节点添加到新链表:2->1 原链表:3->4->5 分离下一个节点作为头节点添加到新链表:3->2->1 原链表:4->5 分离下一个节点作为头节点添加到新链表:4->3->2->1 原链表:5 分离下一个节点作为头节点添加到新链表:5->4->3->2->1 原链表:null Java: class Solution { public ListNode reverseList(ListNode head) { if (head == null