cc150 --链表分割
题目描述
编写代码,以给定值x为基准将链表分割成两部分,所有小于x的结点排在大于或等于x的结点之前
给定一个链表的头指针 ListNode* pHead,请返回重新排列后的链表的头指针。注意:分割以后保持原来的数据顺序不变。
设置两个链表头,遍历原链表,一个追加小数链表,一个追加大数链表,最后将小数链表粘到大数链表前边即为结果。
public class Partition {
public ListNode partition(ListNode head, int x) {
// write code here
ListNode small = new ListNode(-1);
ListNode big = new ListNode(-1);
ListNode smallHead = small;
ListNode bigHead = big;
while(head!=null){
if(head.val<x){
small.next = head;
small = small.next;
head = head.next;
small.next = null;
}
else{
big.next = head;
big = big.next;
head = head.next;
big.next = null;
}
} if(bigHead.next==null) return smallHead.next;
if(smallHead.next==null) return bigHead.next; //连接2个
ListNode cur = smallHead;
while(cur.next!=null)
cur = cur.next;
cur.next = bigHead.next;
return smallHead.next;
}
}
cc150 --链表分割的更多相关文章
- CC11:链表分割
题目 编写代码,以给定值x为基准将链表分割成两部分,所有小于x的结点排在大于或等于x的结点之前 给定一个链表的头指针 ListNode* pHead,请返回重新排列后的链表的头指针.注意:分割以后保持 ...
- 链表分割——牛客剑指offer
题目描述: 编写代码,以给定值x为基准将链表分割成两部分,所有小于x的结点排在大于或等于x的结点之前 给定一个链表的头指针 ListNode pHead,请返回重新排列后的链表的头指针.注意:分割以后 ...
- 链表分割 牛客网 程序员面试金典 C++ Python
链表分割 牛客网 程序员面试金典 C++ Python 题目描述 编写代码,以给定值x为基准将链表分割成两部分,所有小于x的结点排在大于或等于x的结点之前 给定一个链表的头指针 ListNode* p ...
- cc150 --链表中倒数第k个节点
题目描述 输入一个链表,输出该链表中倒数第k个结点. 快指针先走K步,然后快慢同时走,快走到末尾时,慢指针就是倒数第个. public class Solution { public Li ...
- 面试题目——《CC150》链表
面试题2.1:编写代码,移除未排序链表中的重复结点 进阶:如果不得使用临时缓冲区,该怎么解决? package cc150; import java.util.HashMap; import java ...
- LeetCode OJ:Partition List(分割链表)
Given a linked list and a value x, partition it such that all nodes less than x come before nodes gr ...
- 二刷Cracking the Coding Interview(CC150第五版)
第18章---高度难题 1,-------另类加法.实现加法. 另类加法 参与人数:327时间限制:3秒空间限制:32768K 算法知识视频讲解 题目描述 请编写一个函数,将两个数字相加.不得使用+或 ...
- linux内核之链表操作解析
本文只是对linux内核中的链表进行分析.内核版本是linux-2.6.32.63.文件在:linux内核/linux-2.6.32.63/include/linux/list.h.本文对list.h ...
- 【Cracking the Code Interview(5th edition)】二、链表(C++)
链表结点类型定义: class Node { public: ; Node *next = nullptr; Node(int d) { data = d; } }; 快行指针(runner)技巧: ...
随机推荐
- Python虚拟开发环境pipenv
简介 requests库的作者,requests库的作者,requests库的作者(重要的事情说三遍)的又一力作,囊落了virtualenv, pip, pipfile等作为虚拟开发环境的命令行工具 ...
- 不同.NET Framework版本下ASP.NET FormsAuthentication的兼容性
假设站点A加密使用.NET Framework 2.0,站点B解密使用.NET Framework 4.0,除了保持MachineKey相同外还需要进行如下设置: 1.Web.config的<a ...
- netstat命令的安装
yum -y install net-tools (可以生成ifconfig命令,netstat命令)
- Scrapy计划表
第一步 Scrapy 一览:理解Scrapy是什么,他能帮到你什么 安装指南:在电脑上安装Scrapy Scrapy 教程:编写第一个Scrapy项目 示例:通过前人写好的Scrapy项目进行学习 基 ...
- python的类中为什么要引入self
从第一次接触python的面向对象编程时起就很看不惯它的self,简直反人类. 相关资源: What is the purpose of self in Python? http://stackove ...
- yii---where or该如何使用
今天调试YII项目的时候,遇到一个奇葩的事儿,在调试 where or 查询的时候:调试语句是这样: $str = static::find()->where(['or','username' ...
- Ubuntu安装配置MySQL数据库,Apache,PHP
MySQL安装 第一步:首先检查是否安装: sudo netstat -tap| grep mysql 如果没有任何反应则没有安装 第二步:执行命令安装mysql: sudo apt-get inst ...
- MySql数据库查询表信息/列信息(列ID/列名/数据类型/长度/精度/是否可以为null/默认值/是否自增/是否是主键/列描述)
查询表信息(表名/表描述): SELECT table_name name,TABLE_COMMENT value FROM INFORMATION_SCHEMA.TABLES WHERE table ...
- Spring注解及作用
一: spring mvc中的@PathVariable是用来获得请求url中的动态参数的 @PathVariable用于方法中的参数,表示方法参数绑定到地址URL的模板: 例 @Controller ...
- SequenceFile实例操作
HDFS API提供了一种二进制文件支持,直接将<key,value>对序列化到文件中,该文件格式是不能直接查看的,可以通过hadoop dfs -text命令查看,后面跟上Sequen ...