116. 填充每个节点的下一个右侧节点指针

 1 /*
 2 // Definition for a Node.
 3 class Node {
 4 public:
 5     int val;
 6     Node* left;
 7     Node* right;
 8     Node* next;
 9 
10     Node() : val(0), left(NULL), right(NULL), next(NULL) {}
11 
12     Node(int _val) : val(_val), left(NULL), right(NULL), next(NULL) {}
13 
14     Node(int _val, Node* _left, Node* _right, Node* _next)
15         : val(_val), left(_left), right(_right), next(_next) {}
16 };
17 */
18 class Solution 
19 {
20 public:
21     Node* connect(Node* root) 
22     {
23         if (!root) return root;
24         connect(root->left);
25         connect(root->right);
26         Node* m = root->left;
27         Node* n = root->right;
28         while (m && n) 
29         {
30             m->next = n;
31             m = m->right;
32             n = n->left;
33         }
34         return root;
35     }
36 };

 

posted @ 2020-04-01 16:19  Jinxiaobo0509  阅读(98)  评论(0)    收藏  举报