题干:
代码:
/*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}* TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/
class Solution {
public:vector<int> largestValues(TreeNode* root) {queue<TreeNode*> que;vector<int>res;if(root != NULL) que.push(root);while(!que.empty()){int size = que.size();int max = INT_MIN;while(size--){TreeNode* node = que.front();que.pop();max = (node -> val) > max ? (node -> val) : max;if(node -> left) que.push(node -> left);if(node -> right) que.push(node -> right);}res.push_back(max);}return res;}
};
代码中出现了这一行:int max = INT_MIN;
INT_MIN被默认为计算机能想到的最小的值,常用于多个元素比较取最大值。