首页 > 试题广场 >

链表分割

[编程题]链表分割
  • 热度指数:107043 时间限制:C/C++ 3秒,其他语言6秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解

现有一链表的头指针 ListNode* pHead,给一定值x,编写一段代码将所有小于x的结点排在其余结点之前,且不能改变原来的数据顺序,返回重新排列后的链表的头指针。


说明:本题目包含复杂数据结构ListNode,点此查看相关信息
头像 牛客797519594号
发表于 2021-07-29 20:41:17
(1)先令cur=head,把链表分成两段,第一段为小于目标值得,第二段为大于等于目标值的 (2)让cur遍历链表并判断节点放入哪一段里,直到cur==null; (3)若cur.val<x,把cur尾插法到第一段里(分为是否第一次,如是第一次放进去就行了),若cur.val> 展开全文
头像 禾子日月
发表于 2022-07-28 21:46:02
已知题目要求将小于 x 的值与其他值分开并且前后顺序不能发生改变,那么我们可以创建一个栈,将所有小于 x 的值存放在栈中,然后将栈中的元素一一取出,并采用头插法重新插入链表中. import java.util.*; /* public class ListNod 展开全文
头像 Mr.Bear**
发表于 2022-04-10 16:35:53
#(1)首先创建四个节点lessHead,greaterHead,lessTail,greaterTail #(2)遍历整个链表,比x小的尾插到lessHead为哨兵位的那个链表,比x大的尾插到greaterHead为哨兵位的那个链表 #(3)把两个链表连接起来 #(4)创建一个list节点指向这个 展开全文
头像 罅隙·
发表于 2022-03-19 20:11:41
一、思路呈现  这道题目在原链表上进行操作将会异常复杂繁琐,所以我们的操作是创建两个新的链表:greater 和 less。  greater后面跟大于x的结点,less后面跟小于x的结点。我们只需让less的尾结点接上greater的头结点即可。这样既实现了分割又保证原数据的顺序不被改变。 二 展开全文
头像 天纵奇才Poplar
发表于 2022-05-19 11:17:00
struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) {} };*/ class Partition { public: ListNode* par 展开全文
头像 牛客169974873号
发表于 2022-03-15 12:42:04
import java.util.*; /* public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; } }*/ //思路 展开全文
头像 牛客368378559号
发表于 2022-01-15 15:50:13
/* struct ListNode { int val; struct ListNode next; ListNode(int x) : val(x), next(NULL) {} };/ class Partition { public: ListNode* partition(ListNode 展开全文
头像 爱吃大白菜⁣⁣⁣⁣
发表于 2023-01-05 15:01:18
思路: 先读题,题中给一个x值,我们需要将链表通过给的值,左右分别放入小于x的数,和大于x的数。 可以这样操作,new两个链表,一个链表放入小于x的数,一个链表放入大于x的数,最后将两个链表进行链接。 链接细节:若 左表为nul,那么我们直接返回右边的头;若左边不为空,我们只需将右表的头,通过尾插 展开全文
头像 向光而行的奶糖很大胆
发表于 2023-05-11 00:45:00
题目:给一定值x,编写一段代码将所有小于x的结点排在其余结点之前,且不能改变原来的数据顺序,返回重新排列后的链表的头指针。 解题思路: 1、将所有小于x的结点排在其余结点之前且不改变原来的数据顺序 将小于x的节点尾插到第一个链表,大于或等于x的节点尾插到第二个链表,最后将第一个链表的尾节点链接第二 展开全文
头像 牛客842283171号
发表于 2023-04-04 13:10:25
主要思想:把大于x的值放到一个链表,小于x的值放到一个链表,然后再把两个链表合起来。 /* struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) {} } 展开全文