您好,登錄后才能下訂單哦!
這期內容當中小編將會給大家帶來有關python對稱二叉樹該如何理解,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
給定一個二叉樹,檢查它是否是鏡像對稱的。
例如,二叉樹 [1,2,2,3,4,4,3]
是對稱的。
1 / \ 2 2 / \ / \3 4 4 3
但是下面這個 [1,2,2,null,3,null,3]
則不是鏡像對稱的:
1 / \ 2 2 \ \ 3 3
標簽:dfs
遞歸結束條件:
都為空指針則返回true
只有一個為空則返回false
遞歸過程:
判斷兩個指針當前節點值是否相等
判斷A的右子樹與B的左子樹是否對稱
判斷A的左子樹與B的右子樹是否對稱
短路:在遞歸判斷過程中存在短路現象,也就是做與
操作時,如果前面的值返回false則后面的不再進行計算
時間復雜度:O(n)
class Solution {
public boolean isSymmetric(TreeNode root) {
return isMirror(root, root);
}
public boolean isMirror(TreeNode t1, TreeNode t2) {
if (t1 == null && t2 == null) return true;
if (t1 == null || t2 == null) return false;
return (t1.val == t2.val)
&& isMirror(t1.right, t2.left)
&& isMirror(t1.left, t2.right);
}
}
上述就是小編為大家分享的python對稱二叉樹該如何理解了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。