摘要: 题目链接 解题思路 分情况讨论即可 两个头都是空,直接返回空 若root1为空,直接返回root2 若roo2为空,直接返回root1 若都不空,则二者相加,得到一个新节点A,然后二者的左子树去合并,得到一个新左子树new_left,二者的右子树去合并,得到一个新右子树new_right,然后新节点 阅读全文
posted @ 2024-11-15 19:58 ouyangxx 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 题目链接 解题思路 普通的递归可能很简单,但是,现在要求,使用「二叉树递归套路」来思考问题 每个节点需要什么信息?如果根节点,能够有一个「最大深度」的信息,那么直接返回就可以了。那么,这个信息可以通过左子树信息 + 右子树信息 得到吗? max(左子树最大深度, 右子树最大深度) + 1,就是该节点 阅读全文
posted @ 2024-11-15 19:48 ouyangxx 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 题目链接 解题思路 这种二叉树的题目,绝大部分可以用「二叉树的递归套路」来解决,那么什么是「二叉树的递归套路」?其实就是每个节点会有信息,该节点信息怎么来的?左儿子的信息 + 右儿子的信息 ,然后加工成自己的信息。 根结点是否是搜索二叉树?需要左儿子和右儿子给什么信息? 首先要知道左子树和右子树,是 阅读全文
posted @ 2024-11-15 17:26 ouyangxx 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 题目链接 解题思路 层序遍历就是用队列,本题需要一层一层收集答案,所以我们可以用一个变量cur,表示该层还剩多少节点需要收集,同时,遇到一个节点,还要将其孩子节点放入队尾。那么我们怎么知道下一层的节点个数,所以还需要一个变量next,记录下一层的节点个数。 总结一遍:每次从队头拿出一个节点A,然后把 阅读全文
posted @ 2024-11-15 17:03 ouyangxx 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 题目链接 递归版本很简单,这里就不过多介绍,接下来使用非递归版本,就是使用栈,并且是前、中、后序遍历,统一一套逻辑的非递归的二叉树遍历。 中序遍历:遍历顺序是,左中右,不能使用递归,那我们就要自己使用栈来保存「现场」。当来到一个节点时,第一次来到,不能够输出,要先将左子树的内容全部得到后,再输出该节 阅读全文
posted @ 2024-11-15 16:09 ouyangxx 阅读(9) 评论(0) 推荐(0) 编辑
摘要: 七、文件操作 7.1 文件打开和关闭 打开文件open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None) file:文件路径 mode:文件打开模式 文 阅读全文
posted @ 2024-11-15 15:32 ouyangxx 阅读(5) 评论(0) 推荐(0) 编辑
摘要: 六、异常处理 基本语法 try: # 尝试运行的代码块 result = 10 / 0 except ZeroDivisionError as e: # 捕获 ZeroDivisionError 异常 print("不能除以零!", e) except TypeError as e: print(" 阅读全文
posted @ 2024-11-15 14:27 ouyangxx 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 五、类 5.1 定义类 使用 class 关键字定义一个类,类名通常采用首字母大写的驼峰命名法class Person: pass 5.2 构造函数 基本语法 class Person: def __init__(self, name, age): # 定义构造函数 self.name = name 阅读全文
posted @ 2024-11-15 14:02 ouyangxx 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 二、模块 模块是什么?模块就是一个.py文件,可以定义函数、类和变量,模块内也可能包含可执行的代码。 模块的作用 代码重用:模块可以将代码划分为更小的单元,方便在其他文件中重复使用。 组织和结构化代码:模块帮助将大型代码库分解成逻辑单元,使代码结构更清晰。 避免命名冲突:模块引入了命名空间机制,可以 阅读全文
posted @ 2024-11-14 20:17 ouyangxx 阅读(5) 评论(0) 推荐(0) 编辑
摘要: 一、入门 1.1 注释 单行注释# 多行注释 ''' 多行注释 ''' """ 多行注释 """ 指定文件的编码方式 必须在第一行才有效# coding:gbk 1.2 格式化输出 print中,使用% print("姓名:%s, 年龄: %d, 成绩:%.2f" % (name, age, sco 阅读全文
posted @ 2024-11-14 17:04 ouyangxx 阅读(3) 评论(0) 推荐(1) 编辑