//反转一个单链表。 -----迭代 // // 示例: // // 输入: 1->2->3->4->5->NULL //输出: 5->4->3->2->1->NULL // // 进阶: //你可以迭代或递归地反转链表。你能否用两种方法解决这道题? // Related Topics 链表 package ; import com.example.demo.ArrayConvertLinkedList; import com.example.demo.ListNode; import java.util.Stack; //Java:反转链表 public class P206ReverseLinkedList { public static void main(String[] args) { Solution solution = new P206ReverseLinkedList().new Solution(); // TO TEST int[] array = {1, 2, 3, 4, 5}; ListNode head = ArrayConvertLinkedList.arrayToNode(array); head = solution.reverseList(head); ArrayConvertLinkedList.printNode(head); } //leetcode submit region begin(Prohibit modification and deletion) /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */ class Solution { public ListNode reverseList(ListNode head) { ListNode prev = null; ListNode curr = head; while (curr != null) { ListNode nextTemp = curr.next; curr.next = prev; prev = curr; curr = nextTemp; } return prev; } } //leetcode submit region end(Prohibit modification and deletion) }