wordpress站长,大连哪家网站技术开发公司好,网站建设中网站需求分析报告作用,为什么用asp做网站⭐️ 题目描述 #x1f31f; leetcode链接#xff1a;奇偶树
思路#xff1a; 树的层序遍历#xff0c;用队列辅助。用一个变量记录当前是多少层#xff0c;以及当前层的节点个数#xff0c;依次遍历#xff0c;因为需要判断当前层是否严格递增或递减#xff0c;如果正…⭐️ 题目描述 leetcode链接奇偶树
思路 树的层序遍历用队列辅助。用一个变量记录当前是多少层以及当前层的节点个数依次遍历因为需要判断当前层是否严格递增或递减如果正着依次判断不太好判断所以我们判断当条件为假的时候直接返回 false 即可。层序遍历结束都没有返回 false 那说明是奇偶树返回 true。
代码
class Solution {
public:bool isEvenOddTree(TreeNode* root) {int level 0; // 记录当前是第几层// 层序遍历queueTreeNode* q; // 树节点队列q.push(root); // 根节点入队列while (!q.empty()) { // 队列不为空继续int cur_level_count q.size(); // 当前这层的节点个数int prev_val level % 2 1 ? INT_MAX : INT_MIN; // 当前层的前驱节点值for (int i 0; i cur_level_count; i) { // 遍历当前层TreeNode* node q.front();// 当前是奇数层 都是偶数 严格递减 node-val prev_valif ((level % 2 1) ((node-val % 2 ! 0) || (node-val prev_val))) { // 不是严格递增直接返回falsereturn false;}// 当前是偶数层 都是奇数 严格递增 node-val prev_valif ((level % 2 0) ((node-val % 2 ! 1) || (node-val prev_val))) {return false;}// 更新prev_val node-val;if (node-left) {q.push(node-left);}if (node-right) {q.push(node-right);}q.pop();}level; // 下一层}return true;}
};