auto commit
This commit is contained in:
parent
4a00f7b0dd
commit
791317ed53
|
@ -29,7 +29,7 @@ public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
|
||||||
|
|
||||||
### 2. 使用头插法
|
### 2. 使用头插法
|
||||||
|
|
||||||
头插法顾名思义是将节点插入到头部:在遍历原始链表时,将当前节点插入新链表的头部,使起成为第一个节点。
|
头插法顾名思义是将节点插入到头部:在遍历原始链表时,将当前节点插入新链表的头部,使其成为第一个节点。
|
||||||
|
|
||||||
链表的操作需要维护后继关系,例如在某个节点 node1 之后插入一个节点 node2,我们可以通过修改后继关系来实现:
|
链表的操作需要维护后继关系,例如在某个节点 node1 之后插入一个节点 node2,我们可以通过修改后继关系来实现:
|
||||||
|
|
||||||
|
|
|
@ -1,14 +1,17 @@
|
||||||
# 68. 树中两个节点的最低公共祖先
|
# 68. 树中两个节点的最低公共祖先
|
||||||
|
|
||||||
## 解题思路
|
|
||||||
|
|
||||||
### 二叉查找树
|
## 68.1 二叉查找树
|
||||||
|
|
||||||
|
### 题目链接
|
||||||
|
|
||||||
[Leetcode : 235. Lowest Common Ancestor of a Binary Search Tree](https://leetcode.com/problems/lowest-common-ancestor-of-a-binary-search-tree/description/)
|
[Leetcode : 235. Lowest Common Ancestor of a Binary Search Tree](https://leetcode.com/problems/lowest-common-ancestor-of-a-binary-search-tree/description/)
|
||||||
|
|
||||||
二叉查找树中,两个节点 p, q 的公共祖先 root 满足 root.val >= p.val && root.val <= q.val。
|
### 解题思路
|
||||||
|
|
||||||
<div align="center"> <img src="https://cs-notes-1256109796.cos.ap-guangzhou.myqcloud.com/047faac4-a368-4565-8331-2b66253080d3.jpg" width="220"/> </div><br>
|
在二叉查找树中,两个节点 p, q 的公共祖先 root 满足 root.val >= p.val && root.val <= q.val。
|
||||||
|
|
||||||
|
<div align="center"> <img src="https://cs-notes-1256109796.cos.ap-guangzhou.myqcloud.com/047faac4-a368-4565-8331-2b66253080d3.jpg" width="250"/> </div><br>
|
||||||
|
|
||||||
```java
|
```java
|
||||||
public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {
|
public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {
|
||||||
|
@ -22,10 +25,14 @@ public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
### 普通二叉树
|
## 68.2 普通二叉树
|
||||||
|
|
||||||
|
### 题目链接
|
||||||
|
|
||||||
[Leetcode : 236. Lowest Common Ancestor of a Binary Tree](https://leetcode.com/problems/lowest-common-ancestor-of-a-binary-tree/description/)
|
[Leetcode : 236. Lowest Common Ancestor of a Binary Tree](https://leetcode.com/problems/lowest-common-ancestor-of-a-binary-tree/description/)
|
||||||
|
|
||||||
|
### 解题思路
|
||||||
|
|
||||||
在左右子树中查找是否存在 p 或者 q,如果 p 和 q 分别在两个子树中,那么就说明根节点就是最低公共祖先。
|
在左右子树中查找是否存在 p 或者 q,如果 p 和 q 分别在两个子树中,那么就说明根节点就是最低公共祖先。
|
||||||
|
|
||||||
<div align="center"> <img src="https://cs-notes-1256109796.cos.ap-guangzhou.myqcloud.com/d27c99f0-7881-4f2d-9675-c75cbdee3acd.jpg" width="250"/> </div><br>
|
<div align="center"> <img src="https://cs-notes-1256109796.cos.ap-guangzhou.myqcloud.com/d27c99f0-7881-4f2d-9675-c75cbdee3acd.jpg" width="250"/> </div><br>
|
||||||
|
|
|
@ -29,7 +29,7 @@ public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
|
||||||
|
|
||||||
### 2. 使用头插法
|
### 2. 使用头插法
|
||||||
|
|
||||||
头插法顾名思义是将节点插入到头部:在遍历原始链表时,将当前节点插入新链表的头部,使起成为第一个节点。
|
头插法顾名思义是将节点插入到头部:在遍历原始链表时,将当前节点插入新链表的头部,使其成为第一个节点。
|
||||||
|
|
||||||
链表的操作需要维护后继关系,例如在某个节点 node1 之后插入一个节点 node2,我们可以通过修改后继关系来实现:
|
链表的操作需要维护后继关系,例如在某个节点 node1 之后插入一个节点 node2,我们可以通过修改后继关系来实现:
|
||||||
|
|
||||||
|
|
|
@ -1,14 +1,17 @@
|
||||||
# 68. 树中两个节点的最低公共祖先
|
# 68. 树中两个节点的最低公共祖先
|
||||||
|
|
||||||
## 解题思路
|
|
||||||
|
|
||||||
### 二叉查找树
|
## 68.1 二叉查找树
|
||||||
|
|
||||||
|
### 题目链接
|
||||||
|
|
||||||
[Leetcode : 235. Lowest Common Ancestor of a Binary Search Tree](https://leetcode.com/problems/lowest-common-ancestor-of-a-binary-search-tree/description/)
|
[Leetcode : 235. Lowest Common Ancestor of a Binary Search Tree](https://leetcode.com/problems/lowest-common-ancestor-of-a-binary-search-tree/description/)
|
||||||
|
|
||||||
二叉查找树中,两个节点 p, q 的公共祖先 root 满足 root.val >= p.val && root.val <= q.val。
|
### 解题思路
|
||||||
|
|
||||||
<div align="center"> <img src="https://cs-notes-1256109796.cos.ap-guangzhou.myqcloud.com/047faac4-a368-4565-8331-2b66253080d3.jpg" width="220"/> </div><br>
|
在二叉查找树中,两个节点 p, q 的公共祖先 root 满足 root.val >= p.val && root.val <= q.val。
|
||||||
|
|
||||||
|
<div align="center"> <img src="https://cs-notes-1256109796.cos.ap-guangzhou.myqcloud.com/047faac4-a368-4565-8331-2b66253080d3.jpg" width="250"/> </div><br>
|
||||||
|
|
||||||
```java
|
```java
|
||||||
public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {
|
public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {
|
||||||
|
@ -22,10 +25,14 @@ public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
### 普通二叉树
|
## 68.2 普通二叉树
|
||||||
|
|
||||||
|
### 题目链接
|
||||||
|
|
||||||
[Leetcode : 236. Lowest Common Ancestor of a Binary Tree](https://leetcode.com/problems/lowest-common-ancestor-of-a-binary-tree/description/)
|
[Leetcode : 236. Lowest Common Ancestor of a Binary Tree](https://leetcode.com/problems/lowest-common-ancestor-of-a-binary-tree/description/)
|
||||||
|
|
||||||
|
### 解题思路
|
||||||
|
|
||||||
在左右子树中查找是否存在 p 或者 q,如果 p 和 q 分别在两个子树中,那么就说明根节点就是最低公共祖先。
|
在左右子树中查找是否存在 p 或者 q,如果 p 和 q 分别在两个子树中,那么就说明根节点就是最低公共祖先。
|
||||||
|
|
||||||
<div align="center"> <img src="https://cs-notes-1256109796.cos.ap-guangzhou.myqcloud.com/d27c99f0-7881-4f2d-9675-c75cbdee3acd.jpg" width="250"/> </div><br>
|
<div align="center"> <img src="https://cs-notes-1256109796.cos.ap-guangzhou.myqcloud.com/d27c99f0-7881-4f2d-9675-c75cbdee3acd.jpg" width="250"/> </div><br>
|
||||||
|
|
Loading…
Reference in New Issue
Block a user