邮政管理网站建设,网站建设有哪些平台,上线一个网站需要多少钱,广州网站开发创意设计公司题目
给你一个链表的头节点 head 和一个特定值 x #xff0c;请你对链表进行分隔#xff0c;使得所有 小于 x 的节点都出现在 大于或等于 x 的节点之前。 你应当 保留 两个分区中每个节点的初始相对位置。
示例
输入#xff1a;head [1,4,3,2,5,2], x 3 输出#xff1…题目
给你一个链表的头节点 head 和一个特定值 x 请你对链表进行分隔使得所有 小于 x 的节点都出现在 大于或等于 x 的节点之前。 你应当 保留 两个分区中每个节点的初始相对位置。
示例
输入head [1,4,3,2,5,2], x 3 输出[1,2,2,4,3,5]
解析
首先看这道题的时候那个示例半天没看明白它要的是比较之后还是相对序列并不是整体都排序了。然后直接开两个链表来做就可以
/*** Definition for singly-linked list.* type ListNode struct {* Val int* Next *ListNode* }*/
func partition(head *ListNode, x int) *ListNode {small : ListNode{}large : ListNode{} // 定义两个新链表smallHead : smalllargeHead : large // 定义两个头节点for head ! nil {if head.Val x {small.Next headsmall small.Next} else {large.Next headlarge large.Next}head head.Next}large.Next nil small.Next largeHead.Nextreturn smallHead.Next
}