leetcode117

Posted AsenYang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode117相关的知识,希望对你有一定的参考价值。

本题和leetcode116的区别是,116题是完全二叉树,本题是普通二叉树(不一定是完全二叉树)。

但当初做116题的时候,并没有使用完全二叉树这个条件,因此当初的解决方案,完全适用于本题。

 1 class Solution {
 2 public:
 3     Node* connect(Node* root) {
 4         if (root != NULL)
 5         {
 6             queue<Node*> Q;
 7             root->next = NULL;
 8             Q.push(root);
 9             while (!Q.empty())
10             {
11                 vector<Node*> V;
12                 while (!Q.empty())
13                 {
14                     Node* t = Q.front();
15                     Q.pop();
16                     if (t->left != NULL)
17                     {
18                         V.push_back(t->left);
19                     }
20                     if (t->right != NULL)
21                     {
22                         V.push_back(t->right);
23                     }
24                 }
25                 V.push_back(NULL);
26                 for (int i = V.size() - 1; i > 0; i--)
27                 {
28                     V[i - 1]->next = V[i];
29                 }
30                 for (int i = 0; i < V.size() - 1; i++)
31                 {
32                     if (V[i] != NULL)
33                     {
34                         Q.push(V[i]);
35                     }
36                 }
37             }
38         }
39         return root;
40     }
41 };

 

以上是关于leetcode117的主要内容,如果未能解决你的问题,请参考以下文章

Leetcode 117

leetcode117

[leetcode] 117. 填充同一层的兄弟节点 II

LeetCode 117:Populating Next Right Pointers in Each Node II

leetcode@ [116/117] Populating Next Right Pointers in Each Node I & II (Tree, BFS)

《LeetCode之每日一题》:117.颜色分类