定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。
示例:
输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL
解题思路:
考虑遍历链表,并在访问各节点时修改 next
引用指向
package Algriothm; public class Solution2 { public static void main(String[] args) { ListNode head1 = new ListNode(1); ListNode head2 = new ListNode(2); ListNode head3 = new ListNode(3); ListNode head4 = new ListNode(4); ListNode head5 = new ListNode(5); head1.next = head2; head2.next = head3; head3.next = head4; head4.next = head5; System.out.println(reverseList(head1)); } public static ListNode reverseList(ListNode head) { ListNode cur = head, pre = null; while (cur != null) { ListNode tmp = cur.next; cur.next = pre; pre = cur; cur = tmp; } return pre; } }