我們可以為二叉樹 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
解釋:我們翻轉值為 1,3 以及 5 的三個節點。
每棵樹最多有 100 個節點。
每棵樹中的每個值都是唯一的、在 [0, 99] 範圍內的整數。
public
boolean
flipequiv
(treenode root1, treenode root2)
if(root1==null||root2==null||root1.val!=root2.val)
return
(flipequiv
(root1.left, root2.left)
&&flipequiv
(root1.right, root2.right))||
(flipequiv
(root1.left, root2.right)
&&flipequiv
(root1.right, root2.left)
);
LeetCode 整數翻轉
中文版無需翻牆哦!給出乙個 32 位的有符號整數,你需要將這個整數中每位上的數字進行反轉。示例 1 輸入 123 輸出 321 示例 2 輸入 123 輸出 321 示例 3 輸入 120 輸出 21 注意 假設我們的環境只能儲存得下 32 位的有符號整數,則其數值範圍為 231,231 1 請根據...
陣列翻轉 LeetCode 493 翻轉對
給定乙個陣列nums,如果i j且nums i 2 nums j 我們就將 i,j 稱作乙個重要翻轉對。你需要返回給定陣列中的重要翻轉對的數量。示例 輸入 1,3,2,3,1 輸出 2 注意 給定陣列的長度不會超過50000。輸入陣列中的所有數字都在32位整數的表示範圍內 歸併排序可以解決此題,也可...
LeetCode 翻轉卡片遊戲
在桌子上有 n 張卡片,每張卡片的正面和背面都寫著乙個正數 正面與背面上的數有可能不一樣 我們可以先翻轉任意張卡片,然後選擇其中一張卡片。如果選中的那張卡片背面的數字 x 與任意一張卡片的正面的數字都不同,那麼這個數字是我們想要的數字。哪個數是這些想要的數字中最小的數 找到這些數中的最小值 呢?如果...