Leetcode Populating Next Right Pointers in Each Node II
来源:互联网 发布:阿里云解析dns 编辑:程序博客网 时间:2024/06/11 12:42
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
写代码时陷入了各种复杂情况的判断,写的举步维艰。后面参考了下别人的代码,发现通过使用哨兵节点,可以很大的简化复杂度,写简洁优雅代码真是技巧性的活。
代码如下:
/** * 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) { while(root) { TreeLinkNode* temp = new TreeLinkNode(0); TreeLinkNode* cur = temp; while(root) { if(root->left != NULL) { cur->next = root->left; cur = cur->next; } if(root->right != NULL) { cur->next = root->right; cur = cur->next; } root = root->next; } root = temp->next; temp->next = NULL; delete temp; } }};
阅读全文
0 0
- 【LeetCode】Populating Next Right Pointers in Each Node Populating Next Right Pointers in Each Node II
- LeetCode Populating Next Right Pointers in Each Node II
- [Leetcode] Populating Next Right Pointers in Each Node II
- [LeetCode] Populating Next Right Pointers in Each Node II
- leetcode 79: Populating Next Right Pointers in Each Node II
- [Leetcode] Populating Next Right Pointers in Each Node ii
- leetcode Populating Next Right Pointers in Each Node II
- 【leetcode】Populating Next Right Pointers in Each Node II
- [Leetcode]Populating Next Right Pointers in Each Node II
- [leetcode] Populating Next Right Pointers in Each Node II
- LeetCode-Populating Next Right Pointers in Each Node II
- LeetCode - Populating Next Right Pointers in Each Node II
- [LeetCode]Populating Next Right Pointers in Each Node II
- leetcode Populating Next Right Pointers in Each Node II
- LeetCode | Populating Next Right Pointers in Each Node II
- [leetcode]Populating Next Right Pointers in Each Node II
- 【LeetCode OJ】Populating Next Right Pointers in Each Node II
- [LeetCode] Populating Next Right Pointers in Each Node II
- ubuntu16.04怎么设置宽带连接
- Linux命令netstat解读
- JavaScript基础02
- SharePoint 2016 企业项目管理应用(五,平台还原后配置Project for SharePoint)
- 正则表达式语法参考
- Leetcode Populating Next Right Pointers in Each Node II
- [LeetCode] 141. Linked List Cycle
- iOS开发图像压缩处理问题
- 带你彻底明白 Android Studio 打包混淆
- 苹果开发者加入了WebVR社区团体,发力WebVR开发
- 矢量图形引擎库VectorDraw Developer Framework v7.7012.0.2发布丨附下载
- Ext Viewport水平居中并且滚动
- vsftp centos7(226 transfer done but failed to open directory)登录ftp后不能读取文件
- 解决android的activity强制弹出软键盘