剑指offer-58:对称的二叉树

对称的二叉树

https://www.nowcoder.com/practice/ff05d44dfdb04e1d83bdbdab320efbcb?tpId=13&&tqId=11211&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking

题目:请实现一个函数,用来判断一棵二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。
示例1
输入:{8,6,6,5,7,7,5}
返回值:true
示例2
输入:{8,6,9,5,7,7,5}
返回值:false

思路:
1:实现一个判断结点是否相等的函数,且在内部进行递归,主函数直接放入左子树与右子树进行调用
2:判断是否相等的函数具有两个形参,p和q分别代表左节点和右节点,判断的条件有三个
3:p和q如果都为空,则返回true;p和q其中一个为空,则返回false;p和q的值不相等返回false。
4:进行递归,p的左和q的右进行递归,p的右和q的左进行递归
注意:第三点,三个判断条件的先后顺序也要小心。

function same(p,q){
    if(!p && !q) return true
    if(!p || !q) return false
    if(p.val !== q.val) return false
    return same(p.left,q.right) && same(p.right,q.left) 
}
function isSymmetrical(pRoot)
{
    // write code here
    if(!pRoot) return true
    return same(pRoot.left,pRoot.right)
}
全部评论

相关推荐

Natrium_:这时间我以为飞机票
点赞 评论 收藏
分享
贺兰星辰:不要漏个人信息,除了简历模板不太好以外你这个个人简介是不是太夸大了...
点赞 评论 收藏
分享
最近和朋友聊天,她说了句让我震惊的话:"我发现我连周末点外卖都开始'最优解'了,一定要赶在高峰期前下单,不然就觉得自己亏了。"这不就是典型的"班味入侵"吗?工作思维已经渗透到生活的方方面面。
小型域名服务器:啊?我一直都这样啊?我还以为是我爱贪小便宜呢?每次去实验室都得接一杯免费的开水回去,出门都得规划一下最短路径,在宿舍就吃南边的食堂,在实验室就吃北边的食堂,快递只有顺路的时候才取。
点赞 评论 收藏
分享
1 1 评论
分享
牛客网
牛客企业服务