Leetcode Populating Next Right Pointers in Each Node II
2013-11-22 22:46
417 查看
网上大部分的做法都是递归,看了leetcode dicuss上的一个做法,挺巧妙的,先找出下一层的第一个结点,然后连接每一层的结点。
/** * 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) { // IMPORTANT: Please reset any member data you declared, as // the same Solution instance will be reused for each test case. TreeLinkNode *first, *prev, *head = root; while(head){ first = NULL, prev = NULL; while(head){ if(!first) first = head->left ? head->left : head->right; if(head->left){ if(prev) prev->next = head->left; prev = head->left; } if(head->right){ if(prev) prev->next = head->right; prev = head->right; } head = head->next; } head = first; } } };
相关文章推荐
- PHP程序员面试 切忌急功近利(更需要注重以后的发展)
- php 面试碰到过的问题 在此做下记录
- asp.net 面试+笔试题目第1/2页
- asp.net 面试 笔试题目[附答案]第1/3页
- 面试:(设计,架构)
- 面试时,你会问面试官哪些问题?
- asp.net面试中的四十一个经典题目
- 网络工程师面试常见问题
- 腾讯社招面试经历
- java基础面试题 - java基础(1)
- 工作流引擎面试记录及未来发展
- 3个CCIE对一个工程师的面试题
- 今天面试IBM CSDL
- 职场动态赢得面试机会的8个技巧
- 经典linux系统工程师/系统管理员面试题
- 面试 汇总
- 整理
- 面试试题
- 面试相关
- "我会写代码呀,为什么谷歌不要我?"