請實現乙個函式,用來判斷一棵二叉樹是不是對稱的。如果一棵二叉樹和它的映象一樣,那麼它是對稱的。
例如,二叉樹 [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
示例 1:
輸入:root = [1,2,2,3,4,4,3]
輸出:true
示例 2:
輸入:root = [1,2,2,null,3,null,3]
輸出:false
限制:0 <= 節點個數 <= 1000
獲取一棵子樹的映象樹,同另一棵子樹比較是否相同,相同則是對稱二叉樹。
/**
* definition for a binary tree node.
* public class treenode
* }*/class solution
if(root.left == root.right)
if(root.left == null && root.right != null
|| root.left != null && root.right ==null)
if(root.left.val != root.right.val)
inversetree(root.left);
return issame(root.left, root.right);
}private void inversetree(treenode root)
treenode tmp = root.left;
root.left = root.right;
root.right = tmp;
inversetree(root.left);
inversetree(root.right);
}private boolean issame(treenode root1, treenode root2)
if(root1 == null && root2 != null || root1 != null && root2 == null)
if(root1.val != root2.val)
return issame(root1.left, root2.left) && issame(root1.right, root2.right);
}}
題解 對稱二叉樹
給定兩棵樹t1和t2。如果t1可以通過若干次左右孩子互換就變成t2,則我們稱兩棵樹是 同構 的。例如圖1給出的兩棵樹就是同構的,因為我們把其中一棵樹的結點a b g的左右孩子互換後,就得到另外一棵樹。而圖2就不是同構的。一般情況 樹hash 遞迴判斷 用於二叉樹 其實就是多考慮了一下節點的順序問題而...
對稱二叉樹c 對稱的二叉樹
很簡單,關鍵還是知道怎麼樣才能判斷乙個 二叉樹是否對稱,只要採用前序 中序 後序 層次遍歷等任何一種遍歷方法,分為先左後右和先 右後左兩種方法,只要兩次結果相等就說明這棵樹是一顆對稱二叉樹。迭代版本 class solution public bool issymmetric treenode ro...
力扣題解 對稱二叉樹
題目 給定乙個二叉樹,檢查它是否是映象對稱的。例如,二叉樹 1,2,2,3,4,4,3 是對稱的。但是 1,2,2,null,3,null,3 則不是映象對稱的 public class solution treenode left root.left treenode right root.rig...