根據題意,左子樹和右子樹映象對稱返回true。
根節點的左孩子和右孩子只要不對稱就返回false,然後繼續遞迴比較
左子樹的左孩子 == 右子樹的右孩子
左子樹的右孩子 == 右子樹的左孩子
class
solution
(object):
defissymmetric
(self, root)
:"""
:type root: treenode
:rtype: bool
"""ifnot root:
return
true
defdfs
(left,right)
:# 遞迴的終止條件是兩個節點都為空
# 或者兩個節點中有乙個為空
# 或者兩個節點的值不相等
ifnot
(left or right)
:return
true
ifnot
(left and right)
:return
false
if left.val!=right.val:
return
false
return dfs(left.left,right.right)
and dfs(left.right,right.left)
# 用遞迴函式,比較左節點,右節點
return dfs(root.left,root.right)
對稱二叉樹c 對稱的二叉樹
很簡單,關鍵還是知道怎麼樣才能判斷乙個 二叉樹是否對稱,只要採用前序 中序 後序 層次遍歷等任何一種遍歷方法,分為先左後右和先 右後左兩種方法,只要兩次結果相等就說明這棵樹是一顆對稱二叉樹。迭代版本 class solution public bool issymmetric treenode ro...
對稱二叉樹
請實現乙個函式,用來判斷一顆二叉樹是不是對稱的。注意,如果乙個二叉樹同此二叉樹的映象是同樣的,定義其為對稱的。這題還是蠻簡單的。對稱二叉樹 include using namespace std struct treenode bool issymmetrical treenode proot1,t...
對稱二叉樹
請實現乙個函式,用來判斷一顆二叉樹是不是對稱的。注意,如果乙個二叉樹同此二叉樹的映象是同樣的,定義其為對稱的。solution public class treenode 我們可以通過比較二叉樹的前序遍歷序列和對稱前序遍歷序列來判斷二叉樹是不是對稱的 public class solution bo...