迭代写法
1 | public ListNode reverseList(ListNode head) { |
通过循环遍历的方式,使链表的每一个节点和它的下一个节点断开,然后重置其下一个节点。
对于链表中的一个节点(cur)来说,它包含节点的值(value)、其所指向的下一个节点(next)、及指向它的上一个节点(pre)。反转链表就是要把当前节点指向的下一个节点变成指向上一个节点。(链表头没有上一个节点,链表尾下一个节点的指向为空)
next = cur.next; 保留当前节点的下一个节点
cur.next = pre; 重置当前节点的下一个节点为上一个节点
pre = cur; 下次遍历需要用到的上一个节点
cur = next; 下次遍历需要用到的当前节点
递归写法
1 | class Solution { |