題目描述:
請實現乙個函式,用來判斷一棵二叉樹是不是對稱的。如果一棵二叉樹和它的映象一樣,那麼它是對稱的。
例如,二叉樹 [1,2,2,3,4,4,3] 是對稱的。
但是下面這個 [1,2,2,null,3,null,3] 則不是映象對稱的:
示例 1:
輸入:root = [1,2,2,3,4,4,3]
輸出:true
示例 2:
輸入:root = [1,2,2,null,3,null,3]
輸出:false
限制:
0 <= 節點個數 <= 1000
方法1:
主要思路:
(1)直接使用先序遍歷判斷結點的可能的情況即可;
(2)只有不滿足情況就返回false,否則可能進一步判斷;
/**
* definition for a binary tree node.
* struct treenode
* };
*/class
solution
//幾種不一致的情形,返回falseif(
(root1==
null
&&root2!=
null)||
(root1!=
null
&&root2==
null)||
(root1-
>val!=root2-
>val)
)//進一步遞迴判斷
return
helper
(root1-
>left,root2-
>right)
&&helper
(root1-
>right,root2-
>left);}
bool
issymmetric
(treenode* root)
return
helper
(root-
>left,root-
>right);}
};
劍指offer 28對稱的二叉樹
題目 判斷一棵二叉樹是不是對稱的。如果一棵二叉樹和它的映象一樣,那麼它是對稱的。思路分析 剛解答過27題,容易受上題影響,但大致思路是一致的 遞迴和迭代。舉乙個對稱的二叉樹例子可知,若二叉樹是對稱的,則其左子樹的左節點和其右子樹的右節點相等,左子樹的右節點和其右子樹的左節點相等。遞迴public b...
劍指 Offer 28 對稱的二叉樹
請實現乙個函式,用來判斷一棵二叉樹是不是對稱的。如果一棵二叉樹和它的映象一樣,那麼它是對稱的。例如,二叉樹 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...
劍指 Offer 28 對稱的二叉樹
請實現乙個函式,用來判斷一棵二叉樹是不是對稱的。如果一棵二叉樹和它的映象一樣,那麼它是對稱的。例如,二叉樹 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,...