典型栈结构的题目
判断二叉树是否对称
http://www.nowcoder.com/questionTerminal/1b0b7f371eae4204bc4a7570c84c2de1
- 和一般的栈的题目不同的是:这个
/**
* struct TreeNode {
* int val;
* struct TreeNode *left;
* struct TreeNode *right;
* };
*/
//判断,左边和右边是不是对称的
bool solve( TreeNode * L, TreeNode * R )
{
if( nullptr!=L && nullptr!=R )
{
if( (L->val) != (R->val) )
{
return false;
}
else
{
return solve( L->left, R->right ) && solve( L->right, R->left);
}
}
if( nullptr==L && nullptr==R )
{
return true;
}
return false;
}
class Solution {
public:
/**
*
* @param root TreeNode类
* @return bool布尔型
*/
bool isSymmetric(TreeNode* root) {
// write code here
return solve( root, root );
}
};