首页 > 试题广场 >

翻转链表

[编程题]翻转链表
  • 热度指数:5882 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解

对于一个链表 L: L0→L1→…→Ln-1→Ln,
将其翻转成 L0→Ln→L1→Ln-1→L2→Ln-2→…

输入是一串数字,请将其转换成单链表格式之后,再进行操作


输入描述:
一串数字,用逗号分隔


输出描述:
一串数字,用逗号分隔
示例1

输入

1,2,3,4,5

输出

1,5,2,4,3

备注:
数组长度不超过100000
头像 水镜客
发表于 2022-03-10 16:33:15
思路是先把字符串分为两个链,后一个链反转,然后合并两个链。这里面涉及了三个比较常见的操作第一:如何通过数组构建链表,第二:如何通过数组构建反向链表,第三:如何合并两个链表为一个链表(五指针) public class Main{ public static void main(String[ 展开全文
头像 张CM
发表于 2024-05-31 10:34:51
#include <iostream> #include <string> #include <sstream> #include <vector> using namespace std; //解析字符串为数组 vector<int> 展开全文
头像 张CM
发表于 2024-05-31 10:44:55
#include <iostream> #include <string> #include <sstream> #include <vector> using namespace std; //解析字符串为整数向量 vector<int> 展开全文
头像 bandiaoz
发表于 2024-12-26 14:32:33
解题思路 这是一道链表操作题目,主要思路如下: 链表处理分为三步: 找到链表中点(使用快慢指针) 反转后半部分链表 合并前半部分和反转后的后半部分 具体步骤: 使用快慢指针找到中点 从中点开始反转后半部分链表 将反转后的后半部分链表节点依次插入到前半部分相应位置 边界情况处理: 展开全文
头像 牛客55646197号
发表于 2024-02-02 17:04:33
import java.util.Scanner; class LinkedList2 { class ListNode { public int val; public ListNode prev; public ListNode next; 展开全文
头像 laglangyue
发表于 2020-06-04 10:02:17
要求自建链表,把数组转换成链表,然后对链表进行操作。建立一个栈,一个指针p从头往后移动,指针q从栈中取出Node插入到p和p.next之间,pq相遇即停止,相遇有两种情况,一种是p==q,一种是p.next==q; import java.util.Arrays; import java.util. 展开全文
头像 niuniuyeah
发表于 2024-06-11 13:47:14
import sys class ListNode: def __init__(self,val=0,next=None): self.val=val self.next=next def parse_input(slist): if not 展开全文

热门推荐

通过挑战的用户

查看代码
翻转链表