Leetcode 206 反转链表 Java
2019-03-17 11:57
369 查看
Leetcode 206 反转链表
这道题比较基础,记一下分别使用递归和迭代的方法。
//迭代 /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */ class Solution { public ListNode reverseList(ListNode head) { if(head==null||head.next==null) return head; ListNode p=reverseList(head.next); head.next.next=head; head.next=null; return p; } }
public static ListNode reverseListIterative(ListNode head) { ListNode prev = null; //前指针节点 ListNode curr = head; //当前指针节点 //每次循环,都将当前节点指向它前面的节点,然后当前节点和前节点后移 while (curr != null) { ListNode nextTemp = curr.next; //临时节点,暂存当前节点的下一节点,用于后移 curr.next = prev; //将当前节点指向它前面的节点 prev = curr; //前指针后移 curr = nextTemp; //当前指针后移 } return prev; }
相关文章推荐
- 206. 反转链表 [Leetcode] 206. 反转链表 java 迭代和递归
- leetcode解题之206 # Reverse Linked List Java版 (使用头插法反转链表)
- leetcode206-Reverse Linked List-反转链表
- C#LeetCode刷题之#206-反转链表(Reverse Linked List)
- 【LeetCode-面试算法经典-Java实现】【092-Reverse Linked List II(反转单链表II)】
- scala反转链表 leetcode 206 Reverse Linked List
- 【LeetCode-面试算法经典-Java实现】【025-Reverse Nodes in k-Group(单链表中k个结点一组进行反转)】
- 206. 反转链表(Java实现)
- 【LeetCode-面试算法经典-Java实现】【206-Reverse Linked List(反转一个单链表)】
- 剑指offer 面试题16:反转链表(Leetcode 206: Reverse Linked List) 题解
- LeetCode206——Reverse Linked List 反转链表
- [LeetCode-206] Reverse Linked List(链表反转)
- leetcode206 Reverse Linked List(反转链表)
- LeetCode206: 反转链表
- LeetCode206反转链表
- 编程集训第2天:LeetCode--环形链表2(142)及单链表反转(206)C++和python代码实现
- LeetCode 206 Reverse Linked List(反转链表)(Linked List)(四步将递归改写成迭代)(*)
- leetcode206 反转链表
- leetcode206/92---Reverse Linked List I/II(反转链表)
- LeetCode 206 Reverse Linked List(反转链表)(四步将递归改写成迭代)(*)