长春做网站优化价格,网站制作是不是要先用ps做,法拍重庆网站,高清网站建设的好处目录 一、题目二、解法完整代码 一、题目
给定一个二叉树#xff1a;
struct Node { int val; Node *left; Node *right; Node *next; } 填充它的每个 next 指针#xff0c;让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点#xff0c;则将 next 指针设置为 NUL… 目录 一、题目二、解法完整代码 一、题目
给定一个二叉树
struct Node { int val; Node *left; Node *right; Node *next; } 填充它的每个 next 指针让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点则将 next 指针设置为 NULL 。
初始状态下所有 next 指针都被设置为 NULL 。
示例 1
输入root [1,2,3,4,5,null,7] 输出[1,#,2,3,#,4,5,7,#] 解释给定二叉树如图 A 所示你的函数应该填充它的每个 next 指针以指向其下一个右侧节点如图 B 所示。序列化输出按层序遍历顺序由 next 指针连接‘#’ 表示每层的末尾。 示例 2
输入root [] 输出[]
提示
树中的节点数在范围 [0, 6000] 内 -100 Node.val 100 进阶
你只能使用常量级额外空间。 使用递归解题也符合要求本题中递归程序的隐式栈空间不计入额外空间复杂度。 二、解法
层序遍历每次层设置next指针即可 为了方便的遍历list中的每一对python语言可以使用pairwise用法 完整代码 # Definition for a Node.
class Node:def __init__(self, val: int 0, left: Node None, right: Node None, next: Node None):self.val valself.left leftself.right rightself.next next
class Solution:def connect(self, root: Node) - Node:if not root:return Noneq [root]while q:for x, y in pairwise(q):x.next ytmp qq []for node in tmp:if node.left: q.append(node.left)if node.right: q.append(node.right)return root