歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Google電話面試題目

Google電話面試題目

日期:2017/2/28 15:30:49   编辑:Linux教程

谷歌的電話面試都是用Google Doc敲代碼,題目本身不是很難,不過想敲出bug-free還是很難的。

直接上題目

A. 鏈表重組

有一個鏈表,裡面用int 存放key,現在給定一個值 val,我們重組鏈表,小於val的節點放在前面。並且相對順序不能變化

  1. struct TreeNode{
  2. int value;
  3. TreeNode *pNext;
  4. };
  5. int ReconstructLinkedListByValue(TreeNode *head, int val){
  6. TreeNode *leftPart = NULL, *leftHead = NULL;
  7. TreeNode *rightPart = NULL, *rightHead = NULL;
  8. while(head){
  9. if(head->value > val){
  10. if(leftPart == NULL) leftHead = leftPart = head;
  11. else{
  12. leftPart->pNext = head;
  13. leftPart = head;
  14. }
  15. }
  16. else{
  17. if(rightPart == NULL) rightHead = rightPart= head;
  18. else{
  19. rightPart->pNext = head;
  20. rightPart= head;
  21. }
  22. }
  23. head = head->pNext;
  24. }
  25. if(leftHead == NULL){
  26. return rightHead;
  27. }
  28. else{
  29. leftPart.pNext = rightHead;
  30. return leftHead;
  31. }
  32. }
Copyright © Linux教程網 All Rights Reserved