[LeetCode]116. 填充每个节点的下一个右侧节点指针(java实现)
[LeetCode]116. 填充每个节点的下一个右侧节点指针(java实现)
1. 题目2. 读题(需要重点注意的东西)3. 解法4. 可能有帮助的前置习题5. 所用到的数据结构与算法思想6. 总结
1. 题目
2. 读题(需要重点注意的东西)
完美二叉树, 完全二叉树和完满二叉树
思路1(层次遍历,空间复杂度为O(n)):
这是一棵完美二叉树,它的最后一个层级包含 N/2 个节点。广度优先遍历的复杂度取决于一个层级上的最大元素数量。这种情况下空间复杂度为 O(N)
层次遍历,用队列存储每层的节点,每次遍历的时候用p指针指向当前节点:
遍历前n-1个节点,p.next = queue.peek(); 遍历到最后一个节点,需要单独将其next指针置为null,然后将其左右子树加入队列中
思路2(活用next指针):
观察题意,我们得到:
当前节点的左儿子的next
版权声明:
作者:zhangchen
链接:https://www.techfm.club/p/24224.html
来源:TechFM
文章版权归作者所有,未经允许请勿转载。
THE END
二维码
共有 0 条评论