leetcode 116 填充每个节点的下一个右侧节点指针
作者:互联网
/* // Definition for a Node. class Node { public: int val; Node* left; Node* right; Node* next; Node() : val(0), left(NULL), right(NULL), next(NULL) {} Node(int _val) : val(_val), left(NULL), right(NULL), next(NULL) {} Node(int _val, Node* _left, Node* _right, Node* _next) : val(_val), left(_left), right(_right), next(_next) {} }; */ class Solution { public: Node* connect(Node* root) { if(!root) { return 0; } Node* Left=connect(root->left); Node* Right=connect(root->right); //子树之间的连线 if(Left && Right) { while(Left && Right) { Left->next=Right; Left=Left->right; Right=Right->left; } while(Right) { Right->next=NULL; Right=Right->right; } root->next=NULL; return root; } else if(!Left && Right) { while(Right) { Right->next=NULL; Right=Right->right; } root->next=NULL; return root; } else if(!Right && Left) { while(Left) { Left->next=NULL; Left=Left->right; } root->next=NULL; return root; } else{ root->next=NULL; return root; } } };
标签:Node,Right,leetcode,next,116,NULL,root,节点,Left 来源: https://www.cnblogs.com/libin123/p/14598884.html