[LeetCode] Populating Next Right Pointers in Each Node II

来源:互联网 发布:中国阳江网络问政平台 编辑:程序博客网 时间:2024/06/06 23:15

题目链接

void connect2(TreeLinkNode *root) {TreeLinkNode* level_head = root;while(level_head != NULL){TreeLinkNode* next_level_head = NULL;bool get_next_head = false;TreeLinkNode* cur_node = level_head;vector<TreeLinkNode*> two_nodes;while(cur_node != NULL){if(cur_node->left != NULL){if(!get_next_head){next_level_head = cur_node->left;get_next_head = true;}two_nodes.push_back(cur_node->left);if(two_nodes.size() == 2){two_nodes[0]->next = two_nodes[1];two_nodes.erase(two_nodes.begin());}}if(cur_node->right != NULL){if(!get_next_head){next_level_head = cur_node->right;get_next_head = true;}                    two_nodes.push_back(cur_node->right);if(two_nodes.size() == 2){two_nodes[0]->next = two_nodes[1];two_nodes.erase(two_nodes.begin());}}cur_node = cur_node->next;}level_head = next_level_head;}          }


0 0