当前位置:网站首页>2022.02.13 - NC001. Reverse linked list
2022.02.13 - NC001. Reverse linked list
2022-07-06 08:21:00 【A CAI continues to work hard】
List of articles
1. subject


2. Ideas
(1) Utilization stack ( Overtime )
- First use the stack push() Press the nodes into the stack in turn , Reuse stack pop() Pop up the nodes in turn , Reversal can be achieved , But it will time out .
(2) Discussion by situation
- Discuss separately 0 Nodes 、1 Nodes 、2 Nodes 、3 More than nodes :0 Nodes 、1 Nodes return directly head that will do ;2 Just reverse the nodes directly ;3 More than nodes need to use two variables to point to head Of next and next Of next,head Used to point to the node pointed to in the reverse operation ,next Used to point to the node pointed to in the reverse operation , That is, the head node of the new linked list ,nextNext Used to point to the head node of the original linked list .
(3) Optimize
- And (2) The idea is basically the same , But more concise .
- Variable last Point to the node pointed to in the reverse operation , Variable cur Point to the node pointed to in the reverse operation , That is, the head node of the new linked list , Variable next Point to the head node of the original linked list .
- Because the order in the loop body is moving variables next -> Reverse operation -> Moving variables last -> Moving variables cur, So finally, variables last Point to the head node of the new list .
3. Code
import java.util.Stack;
public class Test {
public static void main(String[] args) {
ListNode listNode1 = new ListNode(1);
ListNode listNode2 = new ListNode(2);
ListNode listNode3 = new ListNode(3);
listNode1.next = listNode2;
listNode2.next = listNode3;
Solution2 solution = new Solution2();
ListNode listNode = solution.ReverseList(listNode1);
System.out.println(listNode.val);
System.out.println(listNode.next.val);
System.out.println(listNode.next.next.val);
}
}
class ListNode {
int val;
ListNode next = null;
ListNode(int val) {
this.val = val;
}
}
class Solution {
public ListNode ReverseList(ListNode head) {
Stack<ListNode> stack = new Stack<>();
while (head != null) {
stack.push(head);
head = head.next;
}
head = stack.pop();
ListNode listNode = head;
while (!stack.isEmpty()) {
listNode.next = stack.pop();
listNode = listNode.next;
}
return head;
}
}
class Solution1 {
public ListNode ReverseList(ListNode head) {
if (head != null) {
// At least two points
if (head.next != null) {
// At least three points
if (head.next.next != null) {
ListNode next = head.next;
ListNode nextNext = next.next;
head.next = null;
while (nextNext != null) {
next.next = head;
head = next;
next = nextNext;
nextNext = next.next;
}
next.next = head;
head = next;
}
// There are only two points
else {
head.next.next = head;
head = head.next;
head.next.next = null;
}
}
}
return head;
}
}
class Solution2 {
public ListNode ReverseList(ListNode head) {
if (head == null) {
return null;
}
ListNode last = null;
ListNode cur = head;
ListNode next = null;
while (cur != null) {
next = cur.next;
cur.next = last;
last = cur;
cur = next;
}
return last;
}
}
边栏推荐
- ESP系列引脚说明图汇总
- [cloud native] teach you how to build ferry open source work order system
- Use br to back up tidb cluster data to S3 compatible storage
- 08- [istio] istio gateway, virtual service and the relationship between them
- wincc7.5下载安装教程(Win10系统)
- 灰度升级 TiDB Operator
- 好用的TCP-UDP_debug工具下载和使用
- The State Economic Information Center "APEC industry +" Western Silicon Valley will invest 2trillion yuan in Chengdu Chongqing economic circle, which will surpass the observation of Shanghai | stable
- Vocabulary notes for postgraduate entrance examination (3)
- Grayscale upgrade tidb operator
猜你喜欢
![[t31zl intelligent video application processor data]](/img/67/b77c1de990d9b8868f8df5e55b0227.png)
[t31zl intelligent video application processor data]

All the ArrayList knowledge you want to know is here

Easy to use tcp-udp_ Debug tool download and use

It's hard to find a job when the industry is in recession

2.10transfrom attribute

Golang DNS 随便写写

leetcode刷题 (5.28) 哈希表

synchronized 解决共享带来的问题

Chinese Remainder Theorem (Sun Tzu theorem) principle and template code

wincc7.5下载安装教程(Win10系统)
随机推荐
Zhong Xuegao, who cannot be melted, cannot escape the life cycle of online celebrity products
"Designer universe" APEC design +: the list of winners of the Paris Design Award in France was recently announced. The winners of "Changsha world center Damei mansion" were awarded by the national eco
Hill sort c language
Grayscale upgrade tidb operator
Fibonacci sequence
CISP-PTE实操练习讲解
ESP系列引脚说明图汇总
【MySQL】数据库的存储过程与存储函数通关教程(完整版)
Personalized online cloud database hybrid optimization system | SIGMOD 2022 selected papers interpretation
CAD ARX gets the current viewport settings
[research materials] 2021 Research Report on China's smart medical industry - Download attached
[untitled]
Analysis of Top1 accuracy and top5 accuracy examples
Tidb backup and recovery introduction
Configuring OSPF load sharing for Huawei devices
IoT -- 解读物联网四层架构
hcip--mpls
使用 TiDB Lightning 恢复 S3 兼容存储上的备份数据
Database basic commands
matplotlib. Widgets are easy to use