摘要: 宽度优先搜索,层序遍历各节点,并记录各节点所在层,时间复杂度 O(n)。 1 /** 2 * Definition for a binary tree node. 3 * struct TreeNode { 4 * int val; 5 * TreeNode *left; 6 * TreeNode 阅读全文
posted @ 2019-11-28 22:35 Chenjin123 阅读(190) 评论(0) 推荐(0) 编辑
摘要: 迭代是不可能迭代的 1 /** 2 * Definition for a binary tree node. 3 * struct TreeNode { 4 * int val; 5 * TreeNode *left; 6 * TreeNode *right; 7 * TreeNode(int x) 阅读全文
posted @ 2019-11-28 22:02 Chenjin123 阅读(147) 评论(0) 推荐(0) 编辑
摘要: 主要是要把握同方向搜索比较,其他比较简单,另外就是剪枝提高效率要牢记心中。 1 /** 2 * Definition for a binary tree node. 3 * struct TreeNode { 4 * int val; 5 * TreeNode *left; 6 * TreeNode 阅读全文
posted @ 2019-11-28 21:52 Chenjin123 阅读(119) 评论(0) 推荐(0) 编辑
摘要: 根据题意最直接的方法就是先中序遍历一遍二叉树,用vector记录下各个节点的值,对他们做排序,最后再中序遍历一遍按从小到大的顺序给节点赋值,算法时间复杂度:O(n),空间复杂度:O(n) 1 /** 2 * Definition for a binary tree node. 3 * struct 阅读全文
posted @ 2019-11-28 20:45 Chenjin123 阅读(178) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2019-11-28 20:25 Chenjin123 阅读(99) 评论(0) 推荐(0) 编辑
摘要: this使用 this的内存原理 执行函数setName时,首先是创建函数栈空间,然后创建形参name,除此之外还会有一个this(实质是堆内存中对象的首地址),这个this会索引对象的成员变量name,然后根据执行语句进行赋值 重要结论:类函数被哪个对象调用,this就指向哪个对象的堆内存空间 阅读全文
posted @ 2019-11-28 19:58 Chenjin123 阅读(393) 评论(0) 推荐(0) 编辑
摘要: 1 package pack1; 2 public class Student { 3 // 成员变量 4 private String name; 5 private int age; 6 7 // get/set方法 8 public void setName(String n){ 9 name 阅读全文
posted @ 2019-11-28 19:49 Chenjin123 阅读(368) 评论(0) 推荐(0) 编辑
摘要: 单个对象 1.进入main函数,生成main函数的栈空间 2.先在mian函数的栈空间里产生一个Student变量(以后会用来存储Studnet对象的首地址),然后进入Student类,在堆内存创建String和int类型的变量,并赋上初值 3.将在堆内存的对象的首地址赋值给在栈内存的Studnet 阅读全文
posted @ 2019-11-28 19:23 Chenjin123 阅读(232) 评论(0) 推荐(0) 编辑
摘要: 1 package pack1; 2 public class Phone { 3 //成员变量 4 String brand; 5 int price; 6 //成员方法 7 public void call(){ 8 System.out.println("打电话"); 9 } 10 publi 阅读全文
posted @ 2019-11-28 16:51 Chenjin123 阅读(120) 评论(0) 推荐(0) 编辑
摘要: Java函数和函数重载 1 /* 2 函数定义: 3 public static 返回类型 func(参数){ 4 方法体; 5 } 6 7 函数重载 8 在调用时,Java虚拟机会通过参数的不同来区分同名的函数 9 满足: 10 1.多个函数在同一个类中 11 2.多个函数具有相同函数名 12 3 阅读全文
posted @ 2019-11-28 15:32 Chenjin123 阅读(195) 评论(0) 推荐(0) 编辑