当前位置:网站首页>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;
}
}
边栏推荐
- "Friendship and righteousness" of the center for national economy and information technology: China's friendship wine - the "unparalleled loyalty and righteousness" of the solidarity group released th
- flask返回文件下载
- String to leading 0
- 升级 TiDB Operator
- Tidb backup and recovery introduction
- C language custom type: struct
- Zhong Xuegao, who cannot be melted, cannot escape the life cycle of online celebrity products
- Make learning pointer easier (3)
- 指针和数组笔试题解析
- LDAP应用篇(4)Jenkins接入
猜你喜欢
Hcip day 16
leetcode刷题 (5.28) 哈希表
Online yaml to CSV tool
你想知道的ArrayList知识都在这
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
IP lab, the first weekly recheck
Step by step guide to setting NFT as an ens profile Avatar
Chinese Remainder Theorem (Sun Tzu theorem) principle and template code
A Closer Look at How Fine-tuning Changes BERT
Uibehavior, a comprehensive exploration of ugui source code
随机推荐
Step by step guide to setting NFT as an ens profile Avatar
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】数据库的存储过程与存储函数通关教程(完整版)
LDAP應用篇(4)Jenkins接入
2022 Inner Mongolia latest construction tower crane (construction special operation) simulation examination question bank and answers
2022 Inner Mongolia latest water conservancy and hydropower construction safety officer simulation examination questions and answers
使用 TiDB Lightning 恢复 S3 兼容存储上的备份数据
Zhong Xuegao, who cannot be melted, cannot escape the life cycle of online celebrity products
LDAP Application Section (4) Jenkins Access
JS select all and tab bar switching, simple comments
logback1.3. X configuration details and Practice
"Designer universe" Guangdong responds to the opinions of the national development and Reform Commission. Primary school students incarnate as small community designers | national economic and Informa
MFC 给列表控件发送左键单击、双击、以及右键单击消息
Epoll and IO multiplexing of redis
C语言自定义类型:结构体
Analysis of pointer and array written test questions
Migrate data from a tidb cluster to another tidb cluster
How to use information mechanism to realize process mutual exclusion, process synchronization and precursor relationship
ESP series pin description diagram summary
C language - bit segment