mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-10 04:06:51 +08:00
Merge branch 'youngyangyang04:master' into master
This commit is contained in:
@ -86,6 +86,34 @@ public:
|
|||||||
|
|
||||||
## 其他语言版本
|
## 其他语言版本
|
||||||
|
|
||||||
|
C:
|
||||||
|
```
|
||||||
|
/**
|
||||||
|
* Definition for singly-linked list.
|
||||||
|
* struct ListNode {
|
||||||
|
* int val;
|
||||||
|
* struct ListNode *next;
|
||||||
|
* };
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
struct ListNode* swapPairs(struct ListNode* head){
|
||||||
|
//使用双指针避免使用中间变量
|
||||||
|
typedef struct ListNode ListNode;
|
||||||
|
ListNode *fakehead = (ListNode *)malloc(sizeof(ListNode));
|
||||||
|
fakehead->next = head;
|
||||||
|
ListNode* right = fakehead->next;
|
||||||
|
ListNode* left = fakehead;
|
||||||
|
while(left && right && right->next ){
|
||||||
|
left->next = right->next;
|
||||||
|
right->next = left->next->next;
|
||||||
|
left->next->next = right;
|
||||||
|
left = right;
|
||||||
|
right = left->next;
|
||||||
|
}
|
||||||
|
return fakehead->next;
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
Java:
|
Java:
|
||||||
|
|
||||||
|
@ -1254,6 +1254,44 @@ func connect(root *Node) *Node {
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Java 代码:
|
||||||
|
|
||||||
|
```java
|
||||||
|
// 二叉树之层次遍历
|
||||||
|
class Solution {
|
||||||
|
public Node connect(Node root) {
|
||||||
|
Queue<Node> queue = new LinkedList<>();
|
||||||
|
if (root != null) {
|
||||||
|
queue.add(root);
|
||||||
|
}
|
||||||
|
while (!queue.isEmpty()) {
|
||||||
|
int size = queue.size();
|
||||||
|
Node node = null;
|
||||||
|
Node nodePre = null;
|
||||||
|
|
||||||
|
for (int i = 0; i < size; i++) {
|
||||||
|
if (i == 0) {
|
||||||
|
nodePre = queue.poll(); // 取出本层头一个节点
|
||||||
|
node = nodePre;
|
||||||
|
} else {
|
||||||
|
node = queue.poll();
|
||||||
|
nodePre.next = node; // 本层前一个节点 next 指向当前节点
|
||||||
|
nodePre = nodePre.next;
|
||||||
|
}
|
||||||
|
if (node.left != null) {
|
||||||
|
queue.add(node.left);
|
||||||
|
}
|
||||||
|
if (node.right != null) {
|
||||||
|
queue.add(node.right);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
nodePre.next = null; // 本层最后一个节点 next 指向 null
|
||||||
|
}
|
||||||
|
return root;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
## 117.填充每个节点的下一个右侧节点指针II
|
## 117.填充每个节点的下一个右侧节点指针II
|
||||||
|
|
||||||
题目地址:https://leetcode-cn.com/problems/populating-next-right-pointers-in-each-node-ii/
|
题目地址:https://leetcode-cn.com/problems/populating-next-right-pointers-in-each-node-ii/
|
||||||
|
@ -25,7 +25,7 @@
|
|||||||
输出:12
|
输出:12
|
||||||
解释:偷窃 1 号房屋 (金额 = 2), 偷窃 3 号房屋 (金额 = 9),接着偷窃 5 号房屋 (金额 = 1)。
|
解释:偷窃 1 号房屋 (金额 = 2), 偷窃 3 号房屋 (金额 = 9),接着偷窃 5 号房屋 (金额 = 1)。
|
||||||
偷窃到的最高金额 = 2 + 9 + 1 = 12 。
|
偷窃到的最高金额 = 2 + 9 + 1 = 12 。
|
||||||
|
|
||||||
|
|
||||||
提示:
|
提示:
|
||||||
|
|
||||||
@ -175,6 +175,22 @@ func max(a, b int) int {
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
JavaScript:
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
const rob = nums => {
|
||||||
|
// 数组长度
|
||||||
|
const len = nums.length;
|
||||||
|
// dp数组初始化
|
||||||
|
const dp = [nums[0], Math.max(nums[0], nums[1])];
|
||||||
|
// 从下标2开始遍历
|
||||||
|
for (let i = 2; i < len; i++) {
|
||||||
|
dp[i] = Math.max(dp[i - 2] + nums[i], dp[i - 1]);
|
||||||
|
}
|
||||||
|
return dp[len - 1];
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user