奇怪的是while循环与赋值操作C ++

时间:2017-08-25 22:10:14

标签: c++

我在leetcode解决方案中看到了以下代码段。它计算链表中的元素数。 while语句只有一个赋值操作。谁能解释一下这是如何工作的。

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode(int x) : val(x), next(NULL) {}
 * };
 */

struct ListNode * temp = head;
int num = 1;
while(temp = temp->next){
    num++;
}

1 个答案:

答案 0 :(得分:2)

  1. temp->next的值已分配给temp
  2. 评估
  3. while(temp)temp != NULL
  4. 以防循环体执行
  5. 注意:如果head为NULL,程序将面临运行时错误