当前位置:网站首页>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;
}
}
边栏推荐
- 649. Dota2 Senate
- Step by step guide to setting NFT as an ens profile Avatar
- It's hard to find a job when the industry is in recession
- "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
- 化不掉的钟薛高,逃不出网红产品的生命周期
- hcip--mpls
- Personalized online cloud database hybrid optimization system | SIGMOD 2022 selected papers interpretation
- 【云原生】手把手教你搭建ferry开源工单系统
- Leetcode question brushing (5.28) hash table
- 【MySQL】日志
猜你喜欢
Circular reference of ES6 module
IOT -- interpreting the four tier architecture of the Internet of things
CISP-PTE实操练习讲解
Ruffian Heng embedded bimonthly, issue 49
Easy to use tcp-udp_ Debug tool download and use
National economic information center "APEC industry +": economic data released at the night of the Spring Festival | observation of stable strategy industry fund
Hcip day 16
Nft智能合约发行,盲盒,公开发售技术实战--拼图篇
Golang DNS 随便写写
Let the bullets fly for a while
随机推荐
【MySQL】日志
[Yugong series] February 2022 U3D full stack class 011 unity section 1 mind map
Tidb backup and recovery introduction
"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
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
远程存储访问授权
从 SQL 文件迁移数据到 TiDB
Yyds dry goods inventory three JS source code interpretation eventdispatcher
2022 Inner Mongolia latest water conservancy and hydropower construction safety officer simulation examination questions and answers
"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
华为云OBS文件上传下载工具类
Remote storage access authorization
ESP series pin description diagram summary
leetcode刷题 (5.31) 字符串
All the ArrayList knowledge you want to know is here
Migrate data from SQL files to tidb
Online yaml to CSV tool
MFC 给列表控件发送左键单击、双击、以及右键单击消息
Leetcode skimming (5.29) hash table
指针和数组笔试题解析