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)技巧: ... 
随机推荐
- !important:element.style 覆盖样式问题
			问题: 浏览器F12看到是这个样子. 但是我设置的样式是这样子. #iframe_close { width:750px; } 无论怎么设置样式,都无法覆盖掉element.style的样式,widt ... 
- 在linux上执行.net Console apps
			有个程序,在.net下写了半天,总算跑起来了,发现有个问题,在windows上不好弄,而同事前一段时间已经有Linux下的解决方法了,于是想直接将.net程序放在linux下运行 在linux上的mo ... 
- 【CF839E】Mother of Dragons 折半状压
			[CF839E]Mother of Dragons 题意:给你一张n个点,m条边的无向图.你有k点能量,你可以把能量分配到任意一些点上,每个点分到的能量可以是一个非负实数.定义总能量为:对于所有边&l ... 
- backBone.js初识
			一.单页面应用 1.单页面应用(single-page application :SPA),是指在浏览器中运行的应用,在使用期间不会重新加载页面. 2.它所有的活动局限于一个Web页面,仅在初始化加载 ... 
- 关于*** WARNING L15: MULTIPLE CALL TO SEGMENT
			编写51程序的时候,有时候会在主函数和中断函数里面调用同一个函数,如果正的出现这种情况,编译器会提出 这种警告: *** WARNING L15: MULTIPLE CALL TO SEGMENT(重 ... 
- 51nod 1042数字0-9的数量
			1042 数字0-9的数量 基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题 收藏 关注 给出一段区间a-b,统计这个区间内0-9出现的次数. 比如 10-19 ... 
- 计蒜客 31451 - Ka Chang - [DFS序+树状数组][2018ICPC沈阳网络预赛J题]
			题目链接:https://nanti.jisuanke.com/t/31451 Given a rooted tree ( the root is node $1$ ) of $N$ nodes. I ... 
- Codeforces 592D - Super M - [树的直径][DFS]
			Time limit 2000 ms Memory limit 262144 kB Source Codeforces Round #328 (Div. 2) Ari the monster is n ... 
- htop详解
			一.Htop的使用简介 大家可能对top监控软件比较熟悉,今天我为大家介绍另外一个监控软件Htop,姑且称之为top的增强版,相比top其有着很多自身的优势.如下: 两者相比起来,top比较繁琐 默认 ... 
- Centos升级安装.Net core 1.1
			VS2017已经发布了一个多月了,最期待的功能就是.net core的更新,终于去掉了繁琐了project.json的文件配置.我们尝试打开一个VS2015的.net core项目,会自动升级至.ne ... 
