LeetCode 951. 翻转等价二叉树(递归)
生活随笔
收集整理的這篇文章主要介紹了
LeetCode 951. 翻转等价二叉树(递归)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 1. 題目
- 2. 遞歸解題
1. 題目
我們可以為二叉樹 T 定義一個翻轉操作,如下所示:選擇任意節點,然后交換它的左子樹和右子樹。
只要經過一定次數的翻轉操作后,能使 X 等于 Y,我們就稱二叉樹 X 翻轉等價于二叉樹 Y。
編寫一個判斷兩個二叉樹是否是翻轉等價的函數。這些樹由根節點 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 個節點。 每棵樹中的每個值都是唯一的、在 [0, 99] 范圍內的整數。
來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/flip-equivalent-binary-trees
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。
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));}} };總結
以上是生活随笔為你收集整理的LeetCode 951. 翻转等价二叉树(递归)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode 914. 卡牌分组(最
- 下一篇: LeetCode 1023. 驼峰式匹配