题目
力扣206反转链表
思路图解
代码实现
双指针代码实现
public static ListNode reverseList(ListNode head) {// 初始化pre,curListNode pre = null;ListNode cur = head;// 当cur为null时,说明反转结束while(cur != null) {// 临时保存cur.next节点的值ListNode temp = cur.next;// cur的next指向precur.next = pre;// 注意这两步步骤不能错pre = cur;cur = temp;}return pre;
}
递归方法
参考双指针法,动脑具体想一下,我把代码写出,看是否一样。
建议首先掌握双指针写法,递归写法是在双指针写法基础上而来。
public static ListNode reverseListDiGui(ListNode cur, ListNode pre) {if (cur == null) {return pre;}ListNode temp = cur.next;cur.next = pre;return reverseListDiGui(temp, cur);
}