程式設計師面試金典 面試題 02 04 分割鍊錶

2022-04-02 02:45:09 字數 759 閱讀 6477

編寫程式以 x 為基準分割鍊錶,使得所有小於 x 的節點排在大於或等於 x 的節點之前。如果鍊錶中包含 x,x 只需出現在小於 x 的元素之後(如下所示)。分割元素 x 只需處於「右半部分」即可,其不需要被置於左右兩部分之間。

示例:輸入: head = 3->5->8->5->10->2->1, x = 5

輸出: 3->1->2->10->5->5->8

可以新建兩個鍊錶儲存小於x的節點和大於等於x的節點,然後再將兩個鍊錶拼接返回即可。

不過上面的方法需要額外的空間,我們可以直接在鍊錶上操作,當節點的val小於x時,可以將當前節點刪除,移到頭節點前面,並更新頭節點。

/**

* definition for singly-linked list.

* public class listnode

* } */

class

solution

else

head =head.next;

}p1.next =l2.next;

return

l1.next;

}}

/**

* definition for singly-linked list.

* public class listnode

* } */

class

solution

else

}return

head;

}}

程式設計師面試金典 面試題 08 09 括號

括號。設計一種演算法,列印n對括號的所有合法的 例如,開閉一一對應 組合。說明 解集不能包含重複的子集。例如,給出 n 3,生成結果為 dfs搜尋,如果當前左括號用超了,右括號用超了,或者右括號的數量大於左括號的數量直接返回。而如果左右括號剛好用盡,代表生成乙個結果,記錄下來。然後就是遞迴,新增左括...

程式設計師面試金典 面試題 08 13 堆箱子

堆箱子。給你一堆n個箱子,箱子寬 wi 高hi 深di。箱子不能翻轉,將箱子堆起來時,下面箱子的寬度 高度和深度必須大於上面的箱子。實現一種方法,搭出最高的一堆箱子。箱堆的高度為每個箱子高度的總和。輸入使用陣列 wi,di,hi 表示每個箱子。示例1 輸入 box 1,1,1 2,2,2 3,3,3...

程式設計師面試金典 面試題 05 08 繪製直線

繪製直線。有個單色螢幕儲存在乙個一維陣列中,使得32個連續畫素可以存放在乙個 int 裡。螢幕寬度為w,且w可被32整除 即乙個 int 不會分布在兩行上 螢幕高度可由陣列長度及螢幕寬度推算得出。請實現乙個函式,繪製從點 x1,y 到點 x2,y 的水平線。給出陣列的長度 length,寬度 w 以...