题解 | #对称的二叉树#

对称的二叉树

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

前言

怒答一波,这道题做过很多遍,然后很多次的忘记,知道考什么,就是不会做,其实我们在训练的过程中忽略了自始至终的思路梳理和代码实现,总是看看答案很会,自己却不会写了,对于我们菜鸡来说,重要的不是写的有多简练,而是知道人脑模拟是怎么实现的,下一步才是思考计算机怎么实现

草稿梳理

如果你做过的题,也不复杂,但是你就是不会,你是睁一只眼闭一只眼呢,还是拿出一张纸,什么都不看,抱着能运行出来就好的心态,乱画30分钟找到思路呢,回忆和思考的过程可能会很痛苦,你唯一能做的就是把所有的线索都罗列出来,问自己几个问题:

  1. 是函数自递归呢,还是需要再写个辅助函数递归,怎么判断使用哪种方案本题?

  2. 终止条件是什么呢,递归是写在return位置还是body位置?
    图片说明
    图片说明
    图片说明

    突破口

    突破口就是人是怎么对称的,想象有很多条路线,(左左左,右右右),(左左右,右右左),(左右右, 右左左),想象不同的路径通过红橙黄绿青蓝紫被一一点亮,很帅,很帅!哦哦,有没有启发了,递归原来输入的是一对数,所以需要一个接收两个参数的递归函数

    class Solution:
     def isSymmetrical(self , pRoot: TreeNode) -> bool:
         # write code here
         if not pRoot: return True
         return self.isEqual(pRoot, pRoot)
    
     def isEqual(self, node1, node2):
         if not node1 and not node2: return True
         if not node1 or not node2: return False
    
         return node1.val == node2.val and self.isEqual(node1.left, node2.right) and self.isEqual(node1.right, node2.left) 
全部评论

相关推荐

04-13 18:10
门头沟学院 Java
想熬夜的小飞象在秋招:被腾讯挂了后爸妈以为我失联了
点赞 评论 收藏
分享
野猪不是猪🐗:我assume that你must技术aspect是solid的,temperament也挺good的,however面试不太serious,generally会feel style上不够sharp
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务