建站行业分析,网站服务器暂时不可用怎么办,西安凡高网络,营销网站建设都是专业技术人员吗86. 分隔链表 只把小的放在一边#xff0c;大于的不用放到右边#xff08;这个题的题目比较晦涩#xff0c;很多人说看不懂题#xff0c;我也没看懂#xff0c;解法也没什么特殊#xff0c;半天没读懂题#xff0c;看了别人的解法#xff09; 给定一个链表和一个特定值…86. 分隔链表 只把小的放在一边大于的不用放到右边这个题的题目比较晦涩很多人说看不懂题我也没看懂解法也没什么特殊半天没读懂题看了别人的解法 给定一个链表和一个特定值 x对链表进行分隔使得所有小于 x 的节点都在大于或等于 x 的节点之前。
你应当保留两个分区中每个节点的初始相对位置。
示例:
输入: head 1-4-3-2-5-2, x 3 输出: 1-2-2-4-3-5
Code
/*** Definition for singly-linked list.* type ListNode struct {* Val int* Next *ListNode* }*/
func partition(head *ListNode, x int) *ListNode {if head nil || head.Next nil{return head}less: new(ListNode)cur_l : lessmore : new(ListNode)cur_m :morecur : headfor cur !nil{if cur.Val x {cur_l.Next ListNode{cur.Val,nil}cur_l cur_l.Next}else{cur_m.Next ListNode{cur.Val,nil}cur_m cur_m.Next}cur cur.Next}cur_l.Next more.Nextreturn less.Next
}