83:Populating Next Right Pointers in Each Node
来源:互联网 发布:java自学手册 编辑:程序博客网 时间:2024/06/03 12:41
题目:见https://leetcode.com/problems/populating-next-right-pointers-in-each-node/?tab=Description
解析1:由于该题目要求使用常数空间,因此只能使用迭代法,代码如下,注意代码也能适用该问题的第二个版本https://leetcode.com/problems/populating-next-right-pointers-in-each-node-ii/?tab=Description
// 迭代法,时间复杂度 O(n),空间复杂度 O(logn)class Solution {public: void connect(TreeLinkNode* root) { TreeLinkNode* cur = root; while (cur) { TreeLinkNode dummy{-1}; TreeLinkNode* prev = &dummy; while (cur) { if (cur -> left) { prev -> next = cur -> left; prev = prev -> next; } if (cur -> right) { prev -> next = cur -> right; prev = prev -> next; } cur = cur -> next; } cur = dummy.next; } }};
解析2:该问题也可以使用递归法求解,但空间需求为 O(logn),不满足题意,代码如下:
// 递归法,时间复杂度 O(n),空间复杂度 O(logn)class Solution {public: void connect(TreeLinkNode* root) { connect(root, nullptr); }private: void connect(TreeLinkNode* root, TreeLinkNode* sibling) { if (!root) return; else root -> next = sibling; connect(root -> left, root -> right); if (sibling) connect(root -> right, sibling -> left); else connect(root -> right, nullptr); }};
0 0
- Populating Next Right Pointers in Each Node
- Populating Next Right Pointers in Each Node
- Populating Next Right Pointers in Each Node
- Populating Next Right Pointers in Each Node
- Populating Next Right Pointers in Each Node
- Populating Next Right Pointers in Each Node
- Populating Next Right Pointers in Each Node
- Populating Next Right Pointers in Each Node
- Populating Next Right Pointers in Each Node
- Populating Next Right Pointers in Each Node
- Populating Next Right Pointers in Each Node
- Populating Next Right Pointers in Each Node
- Populating Next Right Pointers in Each Node
- Populating Next Right Pointers in Each Node
- Populating Next Right Pointers in Each Node
- Populating Next Right Pointers in Each Node
- Populating Next Right Pointers in Each Node
- Populating Next Right Pointers in Each Node
- CodeForces #554 C Kyoya and Colored Balls
- Threes.js入门篇之3
- java代码视频数据和音频数据的采集
- Windows MySQL安装配置
- 函数声明
- 83:Populating Next Right Pointers in Each Node
- iOSBase64POST上传图片和FormData方式比较
- ParseInt
- NodeJS多核多线程的解决方案 -- pm2 之三 自启动脚本编写
- 冒泡排序
- eclipse里在操作数据库前之理解
- Threes.js入门篇之4
- Android Studio使用过程中的问题汇总
- 简单的登录验证