程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> leetcode_86_Partition List

leetcode_86_Partition List

編輯:C++入門知識

leetcode_86_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.

思路:

剛開始試著把所有小於x的結點依次插到前面去,但是因為第一個和最後結點的問題真的把我搞得焦頭爛額,後來想想,用我媳婦想到的方法可能更清晰一點,用兩個鏈表分別連接小於和大於等於x 的結點,然後再把兩個結點鏈接到一起,就可以了。在實施的時候稍微偷點懶,首先創建兩個頭節點,哎,現在終於明白頭節點的巨大作用了,其實,按我的那個思路,先搞個頭節點,然後再用兩個引用pre和cur就可以輕松搞定本題了。 做完本題感覺收獲好大,頭節點的出現真的讓我可以很輕松地搞定許多前面我費了好大的勁才搞定的題目,尤其是涉及到在鏈表的開始進行插入的題目。

代碼:

public ListNode partition(ListNode head, int x) {
		if(head==null||head.next==null)
			return head;
		ListNode little_start=new ListNode(0),little_end=little_start;
		ListNode big_start=new ListNode(0),big_end=big_start;
		ListNode pListNode=head;
		while(pListNode!=null)
		{
			if(pListNode.val

結果:


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved