Comments (3)
解题思路
- 遍历链表直到尾端, 然后再从尾端开始向前构造链表
代码
class ListNode {
int val;
ListNode next;
ListNode(int x) {
val = x;
}
}
public static ListNode func(ListNode head) {
if (head == null) return null;
ListNode point = new ListNode(0);
reverse(head, point);
return point.next;
}
public static ListNode reverse(ListNode listNode, ListNode point) {
ListNode val = new ListNode(listNode.val);
ListNode tmp;
// 一旦递归到链表末尾, 就开始回溯构造链表
if (listNode.next != null)
tmp = reverse(listNode.next, point);
else
tmp = point;
tmp.next = val;
return tmp.next;
}
from pisecespeng.record.me.
LeetCode题解
解题思路
- 递归, 遍历到尾端再从尾到头构造链表
代码
class ListNode {
int val;
ListNode next;
ListNode(int x) {
val = x;
}
}
public ListNode func(ListNode head) {
if (head == null || head.next == null) {
return head;
}
ListNode newHead = func(head.next);
head.next.next = head;
head.next = null;
return newHead;
}
from pisecespeng.record.me.
LeetCode题解
解题思路
- 迭代, 在遍历的同时构造前后结点的关系
代码
class ListNode {
int val;
ListNode next;
ListNode(int x) {
val = x;
}
}
public ListNode func(ListNode head) {
ListNode prev = null;
ListNode curr = head;
while (curr != null) {
ListNode next = curr.next;
curr.next = prev;
prev = curr;
curr = next;
}
return prev;
}
from pisecespeng.record.me.
Related Issues (20)
- 两数相加 HOT 2
- 买卖股票的最佳时机 HOT 3
- 买卖股票的最佳时期2 HOT 3
- 二叉树的层序遍历 HOT 2
- 二叉树的最大深度 HOT 2
- 二进制求和 HOT 4
- 从尾到头打印链表 HOT 2
- 位1的个数 HOT 4
- 删除排序数组中的重复项 HOT 2
- 删除链表的倒数第N个节点 HOT 3
- 加一 HOT 2
- 反转字符串 HOT 2
- 只出现一次的数字 HOT 2
- 合并两个有序数组 HOT 3
- 合并两个有序链表 HOT 2
- 回文数 HOT 2
- 回文链表 HOT 3
- 复制带随机指针的链表 HOT 2
- 外观数列 HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from pisecespeng.record.me.