給定乙個二叉樹,檢查它是否是映象對稱的。
例如,二叉樹[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)如果這棵樹是空樹,則返回true;
(2)如果樹的左子樹為空,右子樹不為空,則返回false;
(3)否則就遞迴去判斷左子樹的右子樹和右子樹的左子樹是否相等,如果相等,返回true,若不相等,則返回false;
具體**如下:
/**
* definition for a binary tree node.
* struct treenode ;
*/bool _issymmetric(struct treenode* left,struct treenode* right)
if(left==null||right==null)
return left->val==right->val
&& _issymmetric(left->left,right->right)
&& _issymmetric(left->right,right->left);
}bool issymmetric(struct treenode* root)
return _issymmetric(root->left,root->right);
}
給定乙個二叉樹,檢查它是否是映象對稱的。
給定乙個二叉樹,檢查它是否是映象對稱的。例如,二叉樹 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利用容器佇列先入先出,其實容器的選擇沒有影響,借用兩個容器,儲存左右子節點的值,不論是佇列還...
給定乙個二叉樹,檢查它是否是映象對稱的
所謂的堆成,和根節點關係不大,主要是看左右子樹是否互為映象 比較左右子樹的映象關係 左右子樹數根基欸但的值是不是想等 左子樹的左子樹 和 右子樹的的右子樹是不是映象關係 左子樹的右子樹和右子樹的左子樹是不是映象關係 class solution return ismirror root.left,r...
資料結構 二叉樹 反轉二叉樹
include using namespace std define maxsize 1000 struct binary tree node class queue queue queue void queue push binary tree node btn binary tree node ...