题解 | #对称的二叉树#

对称的二叉树

http://www.nowcoder.com/practice/ff05d44dfdb04e1d83bdbdab320efbcb

争取每一题都记录。
树很容易就想到递归,针对本题,对称的二叉树,左右对称,那么左右子树高度一致,且各个结点也是对称的。那么我们不妨用递归遍历。
确定递归截止条件:
左右结点大小不一样,左右结点一个是叶子结点,另一个不是。不到截止条件,递归继续。
代码:

class Solution {
private:
    int flag = 1;
public:
    bool isSymmetrical(TreeNode* pRoot) {
        if(!pRoot) return true;
        if(pRoot->left && pRoot->right)
            recur(pRoot->left,pRoot->right);
        if(flag == 1)
            return true;
        return false;
    }
    void recur(TreeNode* l, TreeNode* r){
        if(!l && !r) return;
        if(!l || !r){
            flag = 0;
            return;
        }
        if(l->val != r->val){
            flag = 0;
            return;
        }
        recur(l->left,r->right);
        recur(l->right,r->left);
        return;
    }
};
全部评论

相关推荐

点赞 评论 收藏
分享
沉淀一会:1.同学你面试评价不错,概率很大,请耐心等待; 2.你的排名比较靠前,不要担心,耐心等待; 3.问题不大,正在审批,不要着急签其他公司,等等我们! 4.预计9月中下旬,安心过节; 5.下周会有结果,请耐心等待下; 6.可能国庆节前后,一有结果我马上通知你; 7.预计10月中旬,再坚持一下; 8.正在走流程,就这两天了; 9.同学,结果我也不知道,你如果查到了也告诉我一声; 10.同学你出线不明朗,建议签其他公司保底! 11.同学你找了哪些公司,我也在找工作。
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务