学习日记-2019年06月07日
从前序和后序中恢复二叉树
定义一个映射字典,把前序遍历中的值映射到中序遍历中
1 | idx_map = {val:idx for idx,val in enumerate(inorder)} |
从前序和后序中恢复二叉树
leetcode官方题解
1 | class TreeNode(object): |
关于二叉树的测试用例的构造方法
1 | [1, null, 2, 3] 是个串行化格式,表达了一个水平顺序遍历的二叉树,null则代表树枝没有节点 |
因为在leetcode中不能使用nonlocal,于是我特意去了解了一下nonlocal和global的区别
在默认情况下,不允许修改嵌套的def作用域中的名称,修改嵌套作用域中的名称会引发错误
使用nonolocal进行修改
- nonlocal语句在执行时,nonlocal声明的名称必须已经在一个嵌套的def作用域中赋值过,否则将会得到一个错误:不能通过在嵌套的作用域中赋值来创建变量
- nonlocal限制作用域查找仅为嵌套的def,不会在嵌套的模块的全局作用域或所有def之外的内置作用域中查找
nolocal 的使用场景就比较单一,它是使用在闭包中的,使变量使用外层的同名变量
1 | def foo(func): |
参考 https://zhuanlan.zhihu.com/p/41030153
Python中self参数
self指代对象本身,调用函数的时候要先实例化这个方法。再用实例.方法调用。