pull/25/head
chefyuan 2021-05-05 13:40:27 +08:00
parent 6d96954aa7
commit cdee3af8e7
1 changed files with 351 additions and 0 deletions

View File

@ -0,0 +1,351 @@
``,````
> 便 Github
##
n n >= 0 n = 0 ,
- Root
- n > 1 m m > 0`` T1T2........Tm
![](https://cdn.jsdelivr.net/gh/tan45du/photobed@master/二叉树.6w6xnvay3v40.png)
1 m `` T1,T2........Tm
T1 234567T289
T1 绿 T2
m ``
![](https://cdn.jsdelivr.net/gh/tan45du/photobed@master/幻灯片1.3wt8kt6ewj20.PNG)
(A) , (B) , (C) , (D) (A) , (B) C, (D) (C) , (D)
![](https://cdn.jsdelivr.net/gh/tan45du/photobed@master/幻灯片2.4gvv5tql9cw0.PNG)
![](https://cdn.jsdelivr.net/gh/tan45du/photobed@master/幻灯片3.17o6v5lqd9xc.PNG)
##
****
``
````
- 2 012
-
-
![](https://cdn.jsdelivr.net/gh/tan45du/photobed@master/二叉树举例.1mavhkdbs8xs.png)
5 5
##
###
````,.
![](https://cdn.jsdelivr.net/gh/tan45du/photobed@master/image.2k1tlbtywzu0.png)
(B) ,
###
![](https://cdn.jsdelivr.net/gh/tan45du/photobed@master/image.2f3i4soptvi8.png)
ABCD
###
,,,.
,.
![](https://cdn.jsdelivr.net/gh/tan45du/photobed@master/image.6u1n2j3jmu80.png)
, i , 2 , , ,, ,, , .
##
,
,,
** 4 ?**
.
![](https://cdn.jsdelivr.net/gh/tan45du/test@master/photo/微信截图_20210223223621.3juf4t4hc9a0.png)
1 1 , 4 2 2 3
i , ** 2*i** , , 0 2*i+1 , 2*i+1 i/2 **** ****
,,``?
![](https://cdn.jsdelivr.net/gh/tan45du/photobed@master/image.6ox0r00g6e40.png)
2*i ,,,,
,,
,.
, , ,
val , left , right .
![](https://cdn.jsdelivr.net/gh/tan45du/photobed@master/image.2m6tju8ruoo0.png)
1, 2, 3, 4, 5, 6, 7 使,.
![](https://cdn.jsdelivr.net/gh/tan45du/photobed@master/二叉树链式存储.3cctqhi5ll40.png)
****
```java
public class BinaryTree {
int val;
BinaryTree left;
BinaryTree right;
BinaryTree() {}
BinaryTree(int val) { this.val = val; }
BinaryTree(int val, BinaryTree left, BinaryTree right) {
this.val = val;
this.left = left;
this.right = right;
}
}
```
, , , , .
,,
,, , ,.
##
****,**访**,使访访.
, , , , .
###
, ,,,.
,
![](https://img-blog.csdnimg.cn/20210504155755565.gif)
**: leetcode 144. **
**()**
```java
class Solution {
public List<Integer> preorderTraversal(TreeNode root) {
List<Integer> arr = new ArrayList<>();
preorder(root,arr);
return arr;
}
public void preorder(TreeNode root,List<Integer> arr) {
if (root == null) {
return;
}
arr.add(root.val);
preorder(root.left,arr);
preorder(root.right,arr);
}
}
```
: O(n) : O(n) , O(logn), O(n)
, ,
###
, ,, ,
, .
![](https://cdn.jsdelivr.net/gh/tan45du/test@master/photo/中序遍历.7gct7ztck8k0.gif)
**: leetcode 94 **
**()**
```java
class Solution {
public List<Integer> inorderTraversal(TreeNode root) {
List<Integer> res = new ArrayList<>();
inorder(root, res);
return res;
}
public void inorder (TreeNode root, List<Integer> res) {
if (root == null) {
return;
}
inorder(root.left, res);
res.add(root.val);
inorder(root.right, res);
}
}
```
: O(n) : O(n)
###
, , , , .
,,.
![](https://cdn.jsdelivr.net/gh/tan45du/test@master/photo/后序遍历.2bx6qccr1q1w.gif)
**: leetcode 145 **
**()**
```java
class Solution {
public List<Integer> postorderTraversal(TreeNode root) {
List<Integer> res = new ArrayList<>();
postorder(root,res);
return res;
}
public void postorder(TreeNode root, List<Integer> res) {
if (root == null) {
return;
}
postorder(root.left, res);
postorder(root.right, res);
res.add(root.val);
}
}
```
: O(n) : O(n)
###
,.
![image](https://cdn.jsdelivr.net/gh/tan45du/photobed@master/image.4ypjzygovms0.png)
1 ~ 9.
, , , , , ?
使,
, ,
, ,
, ,
, .
, , 使
,,
![](https://img-blog.csdnimg.cn/20210504155603953.gif)
**: leetcode 102 **
```java
class Solution {
public List<List<Integer>> levelOrder(TreeNode root) {
List<List<Integer>> res = new ArrayList<>();
if (root == null) {
return res;
}
//入队 root 节点,也就是第一层
Queue<TreeNode> queue = new LinkedList<>();
queue.offer(root);
while (!queue.isEmpty()) {
List<Integer> list = new ArrayList<>();
int size = queue.size();
for (int i = 0; i < size; ++i) {
TreeNode temp = queue.poll();
//孩子节点不为空,则入队
if (temp.left != null) queue.offer(temp.left);
if (temp.right != null) queue.offer(temp.right);
list.add(temp.val);
}
res.add(list);
}
return res;
}
}
```
On On
- **leetcode 107. II**