程序员面试经典之链表分割
2016-04-28 21:44
513 查看
题目描述
编写代码,以给定值x为基准将链表分割成两部分,所有小于x的结点排在大于或等于x的结点之前给定一个链表的头指针 ListNode* pHead,请返回重新排列后的链表的头指针。注意:分割以后保持原来的数据顺序不变。
代码如下:
public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; } } public class Partition { public ListNode partition(ListNode pHead, int x) { ListNode leftHead =new ListNode(0); ListNode rightHead =new ListNode(0); ListNode left=leftHead; ListNode right =rightHead; ListNode bianli =pHead; while(bianli!=null){ if(bianli.val<x){ left.next=new ListNode(bianli.val); left =left.next; }else{ right.next=new ListNode(bianli.val); right=right.next; } bianli=bianli.next; } if(right!=null){ left.next=rightHead.next; } return leftHead.next; } }
相关文章推荐
- 转行程序员4 机器学习 Regularization 纯属敦促自己学习
- 从哪几个方面可以看出一个程序员的好坏
- oc面试 内存泄露
- Java---常用基础面试知识点
- Java---常用基础面试知识点
- 成为Java顶尖程序员 ,看这11本书就够了
- 逗逼面试的经历
- 程序员需要谨记的九大安全编码规则
- 前端面试题目总结
- 老程序员应该记住的 5 件事
- 10条建议分享:帮助你成为与硅谷工程师一样优秀的程序员
- 我经历的IT公司面试及离职感受(转)
- 10条建议分享:帮助你成为与硅谷工程师一样优秀的程序员
- 做一个合格的程序员需要具备哪些素质?
- 以一道union面试题说明大端小端和内存高位低位
- 《招聘一个靠谱的iOS》面试题参考答案(上)
- 优秀程序员的十个习惯
- 面试感悟----一名3年工作经验的程序员应该具备的技能
- 职业规划
- 你所不了解的程序员内心的温柔