LeetCode 樹 對稱二叉樹

2022-08-20 09:51:12 字數 1275 閱讀 7591

給定乙個二叉樹,檢查它是否是映象對稱的。

示例:

例如,二叉樹 [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

使用遞迴。如果乙個二叉樹是對稱的,則根結點左子樹的值==根結點右子樹的值,根結點左子樹的左子樹的值==根結點右子樹的右子樹的值,根結點左子樹的右子樹的值==根結點右子樹的左子樹的值。**如下:

/**

* definition for a binary tree node.

* struct treenode

* };

*/class solution

bool isequal(treenode* lefttree, treenode* righttree)else if(righttree==nullptr)

return (lefttree->val==righttree->val) && isequal(lefttree->left, righttree->right) && isequal(lefttree->right, righttree->left);

}};

可以換一種寫法:

/**

* definition for a binary tree node.

* struct treenode

* };

*/class solution

bool judge(treenode* leftnode, treenode* rightnode)else return false;

}};

兩種寫法的思想是一樣的。

使用bfs。將輸入的樹看成兩棵相同的樹,一棵樹從左往右將每層的節點加入佇列,另一棵樹從右往左將每層的節點加入佇列。在出佇列的時候,判斷出佇列的兩個連續的節點值是否相同。**如下:

/**

* definition for a binary tree node.

* struct treenode

* };

*/class solution

return true;

}};

leetcode 二叉樹 對稱二叉樹

給定乙個二叉樹,檢查它是否是映象對稱的。例如,二叉樹 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 方法一 遞迴 思路 如果乙個樹的左子樹與右子樹映象對稱,則該樹是對稱的 兩個樹互為映象的...

LeetCode 對稱二叉樹

給定乙個二叉樹,檢查它是否是映象對稱的。例如,二叉樹 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 3class solution public boolean issymmetricdoubl...

LeetCode 對稱二叉樹

我的解決方案 比較笨拙,我直接按照左後根遍歷一遍,然後再按照右後根遍歷一遍,最後比較結果 class treenode public class solution string ltreetostring tree.left,string string ltreetostring tree.righ...