手机版
你好,游客 登录 注册
背景:
阅读新闻

Google电话面试题目

[日期:2012-10-16] 来源:Linux社区  作者:Linux [字体: ]

谷歌的电话面试都是用Google Doc敲代码,题目本身不是很难,不过想敲出bug-free还是很难的。

直接上题目

A. 链表重组

有一个链表,里面用int 存放key,现在给定一个值 val,我们重组链表,小于val的节点放在前面。并且相对顺序不能变化

  1. struct TreeNode{ 
  2.     int value; 
  3.     TreeNode *pNext; 
  4. }; 
  5.  
  6. int ReconstructLinkedListByValue(TreeNode *head, int val){ 
  7.     TreeNode *leftPart = NULL, *leftHead = NULL; 
  8.     TreeNode *rightPart = NULL, *rightHead = NULL; 
  9.      
  10.     while(head){ 
  11.         if(head->value > val){ 
  12.             if(leftPart == NULL) leftHead = leftPart = head; 
  13.             else
  14.                 leftPart->pNext = head; 
  15.                 leftPart = head; 
  16.             } 
  17.         else
  18.             if(rightPart == NULL) rightHead = rightPart= head; 
  19.             else
  20.                 rightPart->pNext = head; 
  21.                 rightPart= head; 
  22.             } 
  23.         } 
  24.         head = head->pNext; 
  25.     } 
  26.     if(leftHead  == NULL){ 
  27.         return rightHead; 
  28.     } 
  29.     else
  30.         leftPart.pNext = rightHead; 
  31.         return leftHead; 
  32.     } 
linux
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款