题解 | #对称的二叉树#

对称的二叉树

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

    def __init__(self, x):
        self.val = x
        self.left = None
        self.right = None
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
#
# @param pRoot TreeNode类
# @return bool布尔型
#
# 使用中序遍历,获取列表,考虑列表是否对称即可
# 层次遍历加中序遍历,保证对称
class Solution:
    def isSymmetrical(self , pRoot: TreeNode) -> bool:
        # write code here
        if not pRoot:
            return True
        # 中序遍历部分
        nodestack = []
        reslist = []
        pRoot2 = pRoot
        while pRoot or len(nodestack) != 0:
            while pRoot:
                nodestack.append(pRoot)
                pRoot = pRoot.left
            pRoot = nodestack.pop()
            reslist.append(pRoot.val)
            pRoot = pRoot.right

        res1 = self.isSymmetic(reslist)

        # 层次遍历部分
        nodeduilie = [pRoot2]
        count = 1
        while True:
            tempcount = 0
            tempreslist = []
            for i in range(count):
                tempnode = nodeduilie.pop(0)
                tempreslist.append(tempnode.val)
                if tempnode.left:
                    nodeduilie.append(tempnode.left)
                    tempcount += 1
                if tempnode.right:
                    nodeduilie.append(tempnode.right)
                    tempcount += 1
            # 不满足层次遍历也不行
            if not self.isSymmetic(tempreslist):
                return False
            count = tempcount
            if count == 0:
                break

        return res1

    def isSymmetic(self, alist: [int]):
        length = len(alist)
        for i in range(length // 2):
            if alist[i] != alist[length - i - 1]:
                return False
        return True


全部评论

相关推荐

前情提要:因为本人录用了一篇SCI一区论文,产生了我与小导师谁是一作的争议。在2023年9-10月一审出结果的阶段,因为我当时在忙实习转正答辩、秋招、写毕业论文(2.5学制),没有办法all in到文章的修改中,于是拜托小导师请我的一位学弟完成修稿的文字部分。其余补充实验、数据均由本人提供,同时因为学弟当时刚入学一个月,对论文也没有什么处理经验,因此我还是做了非常详尽的指点。结果呢,小导师因为我没有办法全程参与,在提交二审的时候把第一和第二作者分别安排成了他和我。我当时想想算了,都要毕业了,懒得追究,加上我当时事也很多。在2024年1月,论文录用了。当小导师谈及这篇论文的时候,说了三遍这篇论文是他的:“你差点耽误了我的审稿”“你打乱了我的审稿时间”“你差点错过我的10月9号(一审修稿截止日期)”我当面听到这几句话,差点心梗。之后他又说了:“这篇文章没创新点”。我内心OS:“你说你自己一作的论文没创新点啊?”过了一会又说:“我当时给你定的要求是再发一篇”。也就是我研一、研二分别发一篇,研三再发一篇,两年半生3胎属于是。又过了一会,他又说了:“你的毕业论文也没什么创新点啊”。过了两周出了盲审结果,3A(上一个帖子)鉴于种种学术霸凌,我向大导师完整讲述了整件事情,期间也得到了大导师和团队助理的协调与帮助。最后小导师发了一条消息:放弃署名。当然了,在录用后到现在大半个月的时间,我尝试了n次找小导师沟通,包含软件、电话,均未回复,终于他在多方压力下回了这唯一的一条消息。既然大家都商量好结果了,我也不再追究。最好笑的是,他在这条消息后面附了一句:“未经作者本人同意署名投稿论文属于学术不端。”我反问他:“你当时拿我第一篇论文改成专利,并署名第一发明人是自己、第二发明人是我的时候,也没有告知我并经过我同意,是否属于学术不端?”当然了,现在大家都商量好结果了,几位老师也说大家都想过个好年,就不再纠缠了。学术霸凌、学术不端最近应该很火吧,大家或多或少都经历过。当自己权益受到侵害的时候,要勇敢站出来。新的一年,㊗️大家都顺利!#你们的毕业论文什么进度了##牛客解忧铺##毕业论文##论文##导师#
点赞 评论 收藏
转发
点赞 评论 收藏
转发
1 收藏 评论
分享
牛客网
牛客企业服务