[leetcode] 117. Populating Next Right Pointers in Each Node II 解题报告
来源:互联网 发布:linux 启动tomcat 编辑:程序博客网 时间:2024/06/06 09:59
题目链接:https://leetcode.com/problems/populating-next-right-pointers-in-each-node-ii/
Follow up for problem "Populating Next Right Pointers in Each Node".
What if the given tree could be any binary tree? Would your previous solution still work?
Note:
- You may only use constant extra space.
For example,
Given the following binary tree,
1 / \ 2 3 / \ \ 4 5 7
After calling your function, the tree should look like:
1 -> NULL / \ 2 -> 3 -> NULL / \ \ 4-> 5 -> 7 -> NULL
思路:可以利用一个虚头结点,记录要连接指针一层结点的第一个元素,然后一个指针从左到右依次连接上一层结点的左右结点。做这一题的时候我又回去看了一下我上一题,发现上一题要求用常量的辅助空间,我用了O(n)的空间。,。正好这个也可以解决那一题的问题。
代码如下:
/** * Definition for binary tree with next pointer. * struct TreeLinkNode { * int val; * TreeLinkNode *left, *right, *next; * TreeLinkNode(int x) : val(x), left(NULL), right(NULL), next(NULL) {} * }; */class Solution {public: void connect(TreeLinkNode *root) { TreeLinkNode *pHead = new TreeLinkNode(0), *pre = pHead; while(root) { if(root->left) { pre->next = root->left; pre = pre->next; } if(root->right) { pre->next = root->right; pre = pre->next; } root = root->next; if(!root)//如果到了一层的最后一个结点,就连接下一层的第一个结点 { pre = pHead; root = pHead->next; pHead->next = NULL; } } }};参考:https://leetcode.com/discuss/67291/java-solution-with-constant-space
0 0
- [leetcode] 117. Populating Next Right Pointers in Each Node II 解题报告
- Leetcode 117. Populating Next Right Pointers in Each Node II 链接邻居2 解题报告
- [Leetcode] 117. Populating Next Right Pointers in Each Node II 解题报告
- [leetcode]117. Populating Next Right Pointers in Each Node II@Java解题报告
- [LeetCode] Populating Next Right Pointers in Each Node 解题报告
- [LeetCode]Populating Next Right Pointers in Each Node II, 解题报告
- [LeetCode] Populating Next Right Pointers in Each Node II 解题报告
- LeetCode 117. Populating Next Right Pointers in Each Node II
- [LeetCode]117.Populating Next Right Pointers in Each Node II
- [Leetcode] 117. Populating Next Right Pointers in Each Node II
- [leetcode] 117.Populating Next Right Pointers in Each Node II
- [LeetCode]117. Populating Next Right Pointers in Each Node II
- Leetcode 117. Populating Next Right Pointers in Each Node II
- [leetcode]117. Populating Next Right Pointers in Each Node II
- LeetCode 117. Populating Next Right Pointers in Each Node II
- Leetcode 117. Populating Next Right Pointers in Each Node II
- [LeetCode] 117. Populating Next Right Pointers in Each Node II
- LeetCode 117. Populating Next Right Pointers in Each Node II
- java:截屏并保存为jpg格式
- 思科命令大全
- 通过VGA启动参数来设置屏幕分辨率模式
- 腾讯云公网ip访问不通的问题解决
- BZOJ 4247: 挂饰|动态规划
- [leetcode] 117. Populating Next Right Pointers in Each Node II 解题报告
- 【经验之谈】C3P0或者dbcp连接池报错
- ES6学习——类语法:Symbol.species在实例创建中的应用
- Swift学习之转义字符
- 神经网络如何表达x1*x2?
- 深入理解Java:注解(Annotation)基本概念
- 深入理解Java:注解(Annotation)自定义注解入门
- 深入理解Java:注解(Annotation)--注解处理器
- 深入理解Java:内省(Introspector)