代码随想录第十二天刷题

二叉树章节

1.前序遍历

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right


class Solution:
    def preorderTraversal(self, root: Optional[TreeNode]) -> List[int]:
        res = []

        def dfs(node):
            if node is None:
                return
            
            res.append(node.val)
            dfs(node.left)
            dfs(node.right)
        dfs(root)
        return res                      

#         self.val = val
#         self.left = left
#         self.right = right

#“我这个节点:
#  值 = val
#  左孩子 = left
#  右孩子 = right”

# ---------- TreeNode 理解 ----------
# self = 当前这个节点对象
#
# self.val = val
#   把值存到对象里
#
# __init__ 是构造函数
# 递归发生在遍历函数(dfs)里

# ---------- 递归终止条件 ----------
# return(不带值)
# 含义:结束当前函数
#
# 在递归中:
# 更重要的是“停止”,不是返回值
#
# return == return None

# ---------- 前序遍历 ----------
# 顺序:根 → 左 → 右
#
# res.append(node.val)   # 访问根
# dfs(node.left)         # 遍历左子树
# dfs(node.right)        # 遍历右子树
#
# 递归不是“跳来跳去”
# 而是函数调用函数

# ---------- 函数定义 vs 调用 ----------
# def f(x):   # 定义函数
#     ...
# f(10)       # 调用函数
#
# 两者必须在同一缩进级别
# 定义 ≠ 执行

全部评论

相关推荐

很多实习生入职第一周,最怕的事就是跟mt或者ld说话。总觉得人家是大佬,自己是个小白,生怕问出什么低级问题显得自己不专业。于是,宁愿对着代码里一个看不懂的逻辑死磕一下午,或者为了请个假在对话框里删删改改半小时,最后把自己憋成了一座“孤岛”。其实,这种“闷头干”才是实习生最大的误区。想在部门里快速“抢跑”,最核心的小技巧就一条:只要他们有空,多去跟你的mt或ld“套近乎”。别误会,这不是让你去拍马屁,而是高效的资源对齐。技术上的逻辑点,你钻研三天可能不如导师点拨三分钟;业务上的弯弯绕绕,mt随口提一句背后的背景,能让你少写多少无用功?更重要的是,交流不仅是为了解决问题,更是为了刷“存在感”和“好感度”。平时不管是技术方案的疑惑,还是业务流程的生疏,甚至是想请个假、问问公司食堂哪家好,只要看准他们手头活儿不忙的空档,大胆走过去聊几句。这种非正式的交流,能让你迅速摸清部门的人际脉络和职场潜规则。在mt眼里,一个爱问问题、主动沟通的实习生,远比一个整天戴着耳机、半天没动静的实习生更靠谱。哪怕你问的问题很基础,只要你有思考,他们通常是很愿意分享的——毕竟,谁不喜欢带一个聪明又主动的徒弟呢?所以,收起那点多余的“社交恐惧”。记住,你手里的键盘只是工具,你身后的mt和ld才是你实习期最大的“外挂”。多问几句,业务熟得快,转正的机率也会大一些。
实习生的生存小技巧
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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