206. Reverse Linked List
Posted skillking
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了206. Reverse Linked List相关的知识,希望对你有一定的参考价值。
一、题目
1、审题
2、分析
分别采用递归、迭代的方式将链表进行翻转。
二、解答
1、思路:
方法一、
迭代: 采用两个指针 pre、cur
// iteratively public ListNode reverseList(ListNode head) { if(head == null) return null; ListNode pre = head, cur = head.next; pre.next = null; while(cur != null) { ListNode next = cur.next; cur.next = pre; pre = cur; cur = next; } return pre; }
方法二、
递归:
public ListNode reverseList3(ListNode head) { return reverseListHelper(head, null); } private ListNode reverseListHelper(ListNode head, ListNode newHead) { if(head == null) return newHead; ListNode next = head.next; head.next = newHead; return reverseListHelper(next, head); }
以上是关于206. Reverse Linked List的主要内容,如果未能解决你的问题,请参考以下文章