LeetCode206: 反转链表
2018-03-29 12:14
645 查看
反转一个单链表。进阶:
链表可以迭代或递归地反转。你能否两个都实现一遍?
思路: https://blog.csdn.net/fx677588/article/details/72357389
1. 首先是迭代的反转链表
方式如上图所示,
2. 利用递归
代码:/**
* 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 pre = null;
// ListNode next = null;
// while(head!=null){
// next = head.next;
// head.next = pre;
// pre = head;
// head = next;
// }
// return pre;
if(head==null || head.next==null){
return head;
}
ListNode h = reverseList(head.next);
head.next.next = head;
head.next = null;
return h;
}
}
链表可以迭代或递归地反转。你能否两个都实现一遍?
思路: https://blog.csdn.net/fx677588/article/details/72357389
1. 首先是迭代的反转链表
方式如上图所示,
2. 利用递归
代码:/**
* 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 pre = null;
// ListNode next = null;
// while(head!=null){
// next = head.next;
// head.next = pre;
// pre = head;
// head = next;
// }
// return pre;
if(head==null || head.next==null){
return head;
}
ListNode h = reverseList(head.next);
head.next.next = head;
head.next = null;
return h;
}
}
相关文章推荐
- leetcode解题之206 # Reverse Linked List Java版 (使用头插法反转链表)
- LeetCode206——Reverse Linked List 反转链表
- [LeetCode-206] Reverse Linked List(链表反转)
- leetcode206/92---Reverse Linked List I/II(反转链表)
- leetcode206-Reverse Linked List-反转链表
- 剑指offer 面试题16:反转链表(Leetcode 206: Reverse Linked List) 题解
- scala反转链表 leetcode 206 Reverse Linked List
- LeetCode 206 Reverse Linked List(反转链表)(四步将递归改写成迭代)(*)
- LeetCode 206 Reverse Linked List(反转链表)(Linked List)(四步将递归改写成迭代)(*)
- 【leetcode】【单链表】【206】Reverse Linked List
- leetcode_c++:链表:Reverse Linked Lis(206)
- [LeetCode] 链表反转相关题目
- leetcode题目 反转链表系列问题
- LeetCode 206. Reverse Linked List - 单链表反转,迭代法和递归法
- [LeetCode]206. Reverse Linked List 链表反转
- [LeetCode]反转链表
- Leetcode Reverse Linked List II 反转部分单向链表
- leetcode之链表逆序翻转类-----92/206 逆序 24/25/61/143 按规则翻转 86/234 双指针分治 19/82/83/203 按规则删除
- LeetCode 206 Reverse Linked List (逆置链表)
- leetCode 92.Reverse Linked List II (反转链表II) 解题思路和方法