您现在的位置是:主页 > news > 视频网站 建设 硬件/如何免费做网站

视频网站 建设 硬件/如何免费做网站

admin2025/5/14 2:39:45news

简介视频网站 建设 硬件,如何免费做网站,怎么设置网站,wordpress tag转专题给定一个二叉树 struct Node { int val; Node *left; Node *right; Node *next; } 填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为 NULL。 初始状态下,所有 next 指针都被设置为 …

视频网站 建设 硬件,如何免费做网站,怎么设置网站,wordpress tag转专题给定一个二叉树 struct Node { int val; Node *left; Node *right; Node *next; } 填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为 NULL。 初始状态下,所有 next 指针都被设置为 …

给定一个二叉树

struct Node {
int val;
Node *left;
Node *right;
Node *next;
}
填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为 NULL。

初始状态下,所有 next 指针都被设置为 NULL。

进阶:

你只能使用常量级额外空间。
使用递归解题也符合要求,本题中递归程序占用的栈空间不算做额外的空间复杂度。

示例:
在这里插入图片描述

输入:root = [1,2,3,4,5,null,7]
输出:[1,#,2,3,#,4,5,7,#]
解释:给定二叉树如图 A 所示,你的函数应该填充它的每个 next 指针,以指向其下一个右侧节点,如图 B 所示。序列化输出按层序遍历顺序(由 next 指针连接),‘#’ 表示每层的末尾。

提示:

树中的节点数小于 6000
-100 <= node.val <= 100

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/populating-next-right-pointers-in-each-node-ii

方法一:层序遍历

C++提交内容:

/*
// Definition for a Node.
class Node {
public:int val;Node* left;Node* right;Node* next;Node() : val(0), left(NULL), right(NULL), next(NULL) {}Node(int _val) : val(_val), left(NULL), right(NULL), next(NULL) {}Node(int _val, Node* _left, Node* _right, Node* _next): val(_val), left(_left), right(_right), next(_next) {}
};
*/class Solution {
public:Node* connect(Node* root) {if (!root) {return nullptr;}queue<Node*> q;q.push(root);while (!q.empty()) {int n = q.size();Node *last = nullptr;for (int i = 1; i <= n; ++i) {Node *f = q.front();q.pop();if (f->left) {q.push(f->left);}if (f->right) {q.push(f->right);}if (i != 1) {last->next = f;}last = f;}}return root;}
};