/**
* 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 newHead = null;
while (head != null){
ListNode tmp = head.next;
head.next = newHead;
newHead = head;
head = tmp;
}
return newHead;
}
}
代码分析
这里采用迭代的方式实现链表反转,代码逻辑其实比较简单就是就是通过临时变量tmp迭代的将原链表每个节点的指针反转即:将图中蓝色箭头反转为红色箭头。