LeetCode 951. 翻转等价二叉树(递归)
生活随笔
收集整理的這篇文章主要介紹了
LeetCode 951. 翻转等价二叉树(递归)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
文章目錄
- 1. 題目
- 2. 遞歸解題
1. 題目
我們可以為二叉樹 T 定義一個翻轉(zhuǎn)操作,如下所示:選擇任意節(jié)點,然后交換它的左子樹和右子樹。
只要經(jīng)過一定次數(shù)的翻轉(zhuǎn)操作后,能使 X 等于 Y,我們就稱二叉樹 X 翻轉(zhuǎn)等價于二叉樹 Y。
編寫一個判斷兩個二叉樹是否是翻轉(zhuǎn)等價的函數(shù)。這些樹由根節(jié)點 root1 和 root2 給出。
示例: 輸入:root1 = [1,2,3,4,5,6,null,null,null,7,8], root2 = [1,3,2,null,6,4,5,null,null,null,null,8,7] 輸出:true 解釋:We flipped at nodes with values 1, 3, and 5.提示: 每棵樹最多有 100 個節(jié)點。 每棵樹中的每個值都是唯一的、在 [0, 99] 范圍內(nèi)的整數(shù)。
來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/flip-equivalent-binary-trees
著作權(quán)歸領(lǐng)扣網(wǎng)絡(luò)所有。商業(yè)轉(zhuǎn)載請聯(lián)系官方授權(quán),非商業(yè)轉(zhuǎn)載請注明出處。
2. 遞歸解題
class Solution { public:bool flipEquiv(TreeNode* root1, TreeNode* root2) {if(!root1 && !root2)return true;else if((!root1 && root2) || (root1 && !root2) || (root1 && root2 && root1->val != root2->val))return false;else//兩個都存在,且相等{return (flipEquiv(root1->left,root2->left) && flipEquiv(root1->right,root2->right))|| (flipEquiv(root1->left,root2->right) && flipEquiv(root1->right,root2->left));}} };總結(jié)
以上是生活随笔為你收集整理的LeetCode 951. 翻转等价二叉树(递归)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode 914. 卡牌分组(最
- 下一篇: LeetCode 1023. 驼峰式匹配