传说中的谷歌招聘委员会成员之一,从幕后走出来,教你学系统设计!


一亩三分地论坛

 找回密码
 获取更多干活,快来注册
天天打游戏、照样领工资、还办H1B
这份工作你要不要?
把贵司招聘信息放这里
查看: 653|回复: 2
收起左侧

[Leetcode] 求助,leetcode总是要我在成员申明后面加分号。

[复制链接] |试试Instant~ |关注本帖
tobias0705 发表于 2014-7-29 04:07:18 | 显示全部楼层 |阅读模式

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看,没有帐号?获取更多干活,快来注册

x
本帖最后由 tobias0705 于 2014-7-29 04:09 编辑

不明白这样的运行结果:
leetcode的运行结果:Line 12: expected ';' at end of member declaration。

  1. /**
  2. * Definition for singly-linked list.
  3. * struct ListNode {
  4. *     int val;
  5. *     ListNode *next;
  6. *     ListNode(int x) : val(x), next(NULL) {}
  7. * };
  8. */

  9. class Solution {
  10. public:
  11.     ListNode* findMid(LstNode *head);

  12.     ListNode* reverse(ListNode *head);

  13.         ListNode* merge(ListNode *head1, ListNode *head2);
  14.        
  15.     void reorderList(ListNode *head);
  16. };

  17. ListNode* Solution::findMid(ListNode *head){
  18.         ListNode *fast = head, ListNode *slow = head;

  19.         if (head == NULL || head->next == NULL) return head;

  20.         while (fast->next->next != NULL && fast != NULL)
  21.         {
  22.                 fast = fast->next->next;
  23.                 slow = slow->next;
  24.         }

  25.         return slow;
  26. }
  27.        
  28. ListNode* Solution::reverse(ListNode *head){
  29.         if (head == NULL || head->next == NULL) return head;
  30.                
  31.         ListNode *curNode = head, *nextNode;

  32.         while (curNode->next != NULL)
  33.         {
  34.                 nextNode = curNode->next;
  35.                 curNode->next = nextNode->next;
  36.                 nextNode->next = head;
  37.                 head = nextNode;
  38.         }

  39.         return head;
  40. }
  41.        
  42. ListNode* Solution::merge(ListNode *head1, ListNode *head2){
  43.         ListNode *tmp, *cur1 = head1, *cur2 = head2;
  44.                
  45.         while (cur2 != NULL)
  46.         {
  47.                 tmp = cur2;
  48.                 cur2 = cur2->next;
  49.                 tmp->next = cur1->next;
  50.                 cur1->next = tmp;
  51.                 cur1 = tmp->next;
  52.         }
  53. }
  54.        
  55. void Solution::reorderList(ListNode *head) {
  56.     ListNode *head2 = findMid(head), *head1 = head;
  57.         
  58.         head2 = reverse(head2);
  59.         head1 = merge(head1, head2);
  60.         head = head1;
  61. }
复制代码

yxyxyx 发表于 2014-7-29 04:50:55 | 显示全部楼层
先不说别的,LstNode是啥?
回复 支持 反对

使用道具 举报

Linzertorte 发表于 2014-7-29 07:50:41 | 显示全部楼层
函数声明与定义是两个不同的东西。你在类里声明成员函数。是一个有效的statement.是需要加分号的
void f(){} 是一个函数定义。此函数do nothing.
void f();是一个函数声明。这之后你必须提供它的定义。
回复 支持 反对

使用道具 举报

本版积分规则

关闭

一亩三分地推荐上一条 /5 下一条

手机版|小黑屋|一亩三分地论坛声明

custom counter

GMT+8, 2017-9-26 10:20

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

快速回复 返回顶部 返回列表