Merge pull request #89 from Joshua-Lu/patch-5

添加 0206.翻转链表 Java版本
This commit is contained in:
Carl Sun
2021-05-14 09:52:03 +08:00
committed by GitHub

View File

@ -103,24 +103,44 @@ public:
Java
```java
// 双指针
class Solution {
public ListNode reverseList(ListNode head) {
if (head == null || head.next == null) return head;
ListNode last = head;
ListNode cur = head.next;
head.next = null;
while (cur.next != null) {
ListNode tmp = cur.next;
cur.next = last;
last = cur;
cur = tmp;
ListNode prev = null;
ListNode cur = head;
ListNode temp = null;
while (cur != null) {
temp = cur.next;// 保存下一个节点
cur.next = prev;
prev = cur;
cur = temp;
}
cur.next = last;
return cur;
return prev;
}
}
```
```java
// 递归
class Solution {
public ListNode reverseList(ListNode head) {
return reverse(null, head);
}
private ListNode reverse(ListNode prev, ListNode cur) {
if (cur == null) {
return prev;
}
ListNode temp = null;
temp = cur.next;// 先保存下一个节点
cur.next = prev;// 反转
// 更新prev、cur位置
prev = cur;
cur = temp;
return reverse(prev, cur);
}
}
```
Python