LeetCode 1609. 奇偶树(层序遍历)
生活随笔
收集整理的這篇文章主要介紹了
LeetCode 1609. 奇偶树(层序遍历)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 1. 題目
- 2. 解題
1. 題目
如果一棵二叉樹滿足下述幾個條件,則可以稱為 奇偶樹 :
- 二叉樹根節點所在層下標為 0 ,根的子節點所在層下標為 1 ,根的孫節點所在層下標為 2 ,依此類推。
- 偶數下標 層上的所有節點的值都是 奇 整數,從左到右按順序 嚴格遞增
- 奇數下標 層上的所有節點的值都是 偶 整數,從左到右按順序 嚴格遞減
給你二叉樹的根節點,如果二叉樹為 奇偶樹 ,則返回 true ,否則返回 false 。
示例 1:
示例 2:
示例 3:
來源:力扣(LeetCode) 鏈接:https://leetcode-cn.com/problems/even-odd-tree
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。
2. 解題
class Solution { public:bool isEvenOddTree(TreeNode* root) {queue<TreeNode*> q;q.push(root);bool desc = false;//降序?(初始0層,是升序)while(!q.empty()) {int size = q.size();int cur, prev = desc ? INT_MAX : -1;while(size--){cur = q.front()->val;if(cur%2 == 1 && desc)return false;if(cur%2==0 && !desc)return false;if(cur==prev || (cur > prev && desc)||(cur < prev && !desc))return false;if(q.front()->left)q.push(q.front()->left);if(q.front()->right)q.push(q.front()->right);q.pop();prev = cur;}desc = !desc;}return true;} };448 ms 147.3 MB
我的CSDN博客地址 https://michael.blog.csdn.net/
長按或掃碼關注我的公眾號(Michael阿明),一起加油、一起學習進步!
總結
以上是生活随笔為你收集整理的LeetCode 1609. 奇偶树(层序遍历)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode 1551. 使数组中所
- 下一篇: LeetCode 1663. 具有给定数