本文共 823 字,大约阅读时间需要 2 分钟。
为了解决这个问题,我们需要填充二叉树中每个节点的 next
指针,使其指向下一个右侧节点。我们需要在常量级额外空间内完成这个任务,这意味着我们不能使用额外的数据结构来存储节点信息。
我们可以使用一种递归的方法来处理这个问题。具体步骤如下:
p
为根节点。p
的右边节点,并将 p
的 next
指针指向该右边节点。p
更新为右边节点的左边节点,这样我们就可以处理下一层的最左边节点。p
为空或 p
的左边节点为空时,终止循环。这种方法确保了我们能够在常量级额外空间内完成任务,因为我们只使用了几个指针变量,而没有存储整个层序结构。
class Solution { public Node* connect(Node* root) { if (!root) return null; Node* p = root; while (p && p->left != null) { p->next = p->right; p = p->right->left; } return root; }}
null
。p
设为根节点 root
。p
不为空且 p
的左边节点不为空的情况下,执行循环。 p
的 next
指针指向 p
的右边节点。p
更新为右边节点的左边节点,这样可以处理下一层的最左边节点。root
。这种方法确保了每个节点的 next
指针都被正确填充,形成了一个链表结构,每个节点都指向下一个右侧节点。
转载地址:http://dybr.baihongyu.com/