博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode: Partition List 解题报告
阅读量:6292 次
发布时间:2019-06-22

本文共 1919 字,大约阅读时间需要 6 分钟。

Partition List

Given a linked list and a value x, partition it such that all nodes less than x come before nodes greater than or equal to x.

You should preserve the original relative order of the nodes in each of the two partitions.
For example,
Given 1->4->3->2->5->2 and x = 3,
return 1->2->2->4->3->5.

SOLUTION 1:

注意使用Dummynode来记录各个链条的头节点的前一个节点。这样我们可以轻松找回头节点。

1. Go Through the link, find the nodes which are bigger than N, create a new link.

2. After 1 done, just link the two links.

1 /** 2  * Definition for singly-linked list. 3  * public class ListNode { 4  *     int val; 5  *     ListNode next; 6  *     ListNode(int x) { 7  *         val = x; 8  *         next = null; 9  *     }10  * }11  */12 public class Solution {13     public ListNode partition(ListNode head, int x) {14         if (head == null) {15             return null;16         }17         18         ListNode dummy = new ListNode(0);19         dummy.next = head;20         21         ListNode pre = dummy;22         ListNode cur = head;23         24         // Record the big list.25         ListNode bigDummy = new ListNode(0);26         ListNode bigTail = bigDummy;27         28         while (cur != null) {29             if (cur.val >= x) {30                 // Unlink the cur;31                 pre.next = cur.next;32                33                 // Add the cur to the tail of the new link.34                 bigTail.next = cur;35                 cur.next = null;36                37                 // Refresh the bigTail.38                 bigTail = cur;39                40                 // 移除了一个元素的时候,pre不需要修改,因为cur已经移动到下一个位置了。41             } else {42                 pre = pre.next;43             }44             45             cur = pre.next;46         }47         48         // Link the Big linklist to the smaller one.49         pre.next = bigDummy.next;50         51         return dummy.next;52     }53 }
View Code

CODE:

转载地址:http://bscta.baihongyu.com/

你可能感兴趣的文章
Docker之功能汇总
查看>>
!!a标签和button按钮只允许点击一次,防止重复提交
查看>>
(轉貼) Eclipse + CDT + MinGW 安裝方法 (C/C++) (gcc) (g++) (OS) (Windows)
查看>>
还原数据库
查看>>
作业调度框架 Quartz.NET 2.0 beta 发布
查看>>
mysql性能的检查和调优方法
查看>>
项目管理中的导向性
查看>>
Android WebView 学习
查看>>
(转)从给定的文本中,查找其中最长的重复子字符串的问题
查看>>
HDU 2159
查看>>
spring batch中用到的表
查看>>
资源文件夹res/raw和assets的使用
查看>>
UINode扩展
查看>>
LINUX常用命令
查看>>
百度云盘demo
查看>>
概率论与数理统计习题
查看>>
初学structs2,简单配置
查看>>
Laravel5.0学习--01 入门
查看>>
时间戳解读
查看>>
sbin/hadoop-daemon.sh: line 165: /tmp/hadoop-hxsyl-journalnode.pid: Permission denied
查看>>