程序员面试金典题解 链表分割
2016-06-28 22:53
274 查看
题目描述
编写代码,以给定值x为基准将链表分割成两部分,所有小于x的结点排在大于或等于x的结点之前
给定一个链表的头指针 ListNode* pHead,请返回重新排列后的链表的头指针。注意:分割以后保持原来的数据顺序不变。
编写代码,以给定值x为基准将链表分割成两部分,所有小于x的结点排在大于或等于x的结点之前
给定一个链表的头指针 ListNode* pHead,请返回重新排列后的链表的头指针。注意:分割以后保持原来的数据顺序不变。
import java.util.*; /** public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; } }*/ public class Partition { public ListNode partition(ListNode pHead, int x) { if(pHead==null) return null; ListNode beforeStart=null; ListNode beforeEnd=null; ListNode afterStart=null; ListNode afterEnd=null; ListNode temp=pHead; while(temp!=null){ ListNode next=temp.next; temp.next=null; if(temp.val<x){ if(beforeStart==null){ beforeStart=temp; beforeEnd=temp; }else{ beforeEnd.next=temp; beforeEnd=temp; } }else{ if(afterStart==null){ afterStart=temp; afterEnd=temp; }else{ afterEnd.next=temp; afterEnd=temp; } } temp=next; } if(beforeStart==null){ return afterStart; }else{ beforeEnd.next=afterStart; return beforeStart; } } }
相关文章推荐
- 【转】游戏程序员养成计划
- 一个判断完数的小例子
- 剑指offer-面试10:二进制中1的个数(位运算)
- PHP中提问频率最高的11个面试题和答案
- 程序员学习能力提升三要素(工作用什么,就练什么,不要在上班时间看书)
- 如何做一个及格的养得活自己的程序员
- 记自己今天在金山云数据分析岗的面试
- 史上最全前端开发面试问题及答案整理
- SQL面试题
- Android面试经验总结
- Andorid-20k+的面试题
- 常见面试题-概念题答案
- PHP程序员成长路线
- 互联网时代程序员如何避免知识半衰期?
- 万众创新:你是一个优秀的程序员吗?
- 如何提高程序员10倍的生产力
- 互联网时代程序员如何避免知识半衰期?
- 万众创新:你是一个优秀的程序员吗?
- 如何提高程序员10倍的生产力
- php面试题与答案