【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>
题目描述:
解题思路:
1.迭代
首先设置三个指针,temp和next指向null,curr指向head,下面迭代开始。
a. next指向 curr -> next(如上图)。
b. 然后将 curr -> 指向temp(如上图)。
c. 然后将temp指向curr,curr指向next,这样算是完成了第一次迭代(如上图)。
接下来重复a, b, c,不断进行迭代,直到curr -> 指向null(如上图),这时将curr -> 指向 temp,然后返回temp就完成了反转。
2.递归
代码:
//迭代 public ListNode ReverseListIteration(ListNode head) { if (head == null) return null; ListNode temp = null; ListNode curr = head; while (curr.next != null) { ListNode next = curr.next; curr.next = temp; temp = curr; curr = next; } curr.next = temp; return curr; } //递归 public ListNode ReverseListRecusion(ListNode head) { if (head == null) return null; if (head.next == null) return head; ListNode p = ReverseListRecusion(head.next); head.next.next = head; head.next = null; return p; }
相关文章推荐
- LeetCode 206: 反转链表 C++实现
- LeetCode_206—— 反转链表
- leetcode206/92---Reverse Linked List I/II(反转链表)
- 【数据结构】单链表介绍及leetcode206题反转单链表python实现
- 每天一道面试题LeetCode 206 -- 反转链表
- scala反转链表 leetcode 206 Reverse Linked List
- 剑指面试题24-反转链表 leetcode 206
- LeetCode206——Reverse Linked List 反转链表
- LeetCode206: 反转链表
- LeetCode206反转链表
- leetcode206-Reverse Linked List-反转链表
- leetcode 206 链表反转 python
- leetcode:[206]反转链表
- LeetCode 206 Reverse Linked List(反转链表)(四步将递归改写成迭代)(*)
- leetcode206 Reverse Linked List(反转链表)
- leetcode解题之206 # Reverse Linked List Java版 (使用头插法反转链表)
- 编程集训第2天:LeetCode--环形链表2(142)及单链表反转(206)C++和python代码实现
- leetcode206 反转链表
- LeetCode探索之旅(60)-206反转链表
- LeetCode - 206 - 反转链表(reverse-linked-list)