题目
定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。
方法:迭代
思路
定义三个指针,一起往后走,走一步就修改mid指针的next,原本是mid的next 是right,我们修改成left。
初始状态:
结束状态:
结束了之后再执行最后的操作:
mid.next = left; head = mid;
代码
public ListNode reverseList(ListNode head) {if (head == null || head.next == null)return head;ListNode left = null;ListNode mid = head;ListNode right = head.next;while (right!=null){mid.next = left;left = mid;mid = right;right = right.next;}mid.next = left;head = mid;return head;}