当前位置:网站首页>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;
}
}
边栏推荐
- Use br to back up tidb cluster data to S3 compatible storage
- Nft智能合约发行,盲盒,公开发售技术实战--合约篇
- Colorlog结合logging打印有颜色的日志
- Wincc7.5 download and installation tutorial (win10 system)
- Convolution, pooling, activation function, initialization, normalization, regularization, learning rate - Summary of deep learning foundation
- How to use information mechanism to realize process mutual exclusion, process synchronization and precursor relationship
- String to leading 0
- Restore backup data on S3 compatible storage with br
- 从 SQL 文件迁移数据到 TiDB
- matplotlib. Widgets are easy to use
猜你喜欢

2. File operation - write

Secure captcha (unsafe verification code) of DVWA range

Make learning pointer easier (3)

wincc7.5下载安装教程(Win10系统)

Configuring OSPF load sharing for Huawei devices

在 uniapp 中使用阿里图标

Analysis of pointer and array written test questions

好用的TCP-UDP_debug工具下载和使用

The ECU of 21 Audi q5l 45tfsi brushes is upgraded to master special adjustment, and the horsepower is safely and stably increased to 305 horsepower

【MySQL】日志
随机推荐
Asia Pacific Financial Media | art cube of "designer universe": Guangzhou community designers achieve "great improvement" in urban quality | observation of stable strategy industry fund
1204 character deletion operation (2)
从 CSV 文件迁移数据到 TiDB
灰度升级 TiDB Operator
Secure captcha (unsafe verification code) of DVWA range
使用 TiDB Lightning 恢复 S3 兼容存储上的备份数据
[research materials] 2021 China online high growth white paper - Download attached
华为云OBS文件上传下载工具类
[2022 Guangdong saim] Lagrange interpolation (multivariate function extreme value divide and conquer NTT)
VMware virtualization cluster
Go learning notes (3) basic types and statements (2)
Migrate data from a tidb cluster to another tidb cluster
Introduction to backup and recovery Cr
The resources of underground pipe holes are tight, and the air blowing micro cable is not fragrant?
leetcode刷题 (5.28) 哈希表
Circular reference of ES6 module
使用 BR 恢复 S3 兼容存储上的备份数据
VMware 虚拟化集群
Huawei cloud OBS file upload and download tool class
Asia Pacific Financial Media | female pattern ladyvision: forced the hotel to upgrade security. The drunk woman died in the guest room, and the hotel was sentenced not to pay compensation | APEC secur