程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> [LeetCode]Populating Next Right Pointers in Each Node II

[LeetCode]Populating Next Right Pointers in Each Node II

編輯:C++入門知識

** 
 * 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) {  
        // Start typing your C/C++ solution below  
        // DO NOT write int main() function  
        if(root == NULL) return ;  
        root->next = NULL;  
        TreeLinkNode* prevHead = root;  
        while(true)  
        {  
            TreeLinkNode* cur = prevHead;  
            TreeLinkNode* prev = NULL;  
            while(cur != NULL)  
            {  
                if(cur->left != NULL)  
                {  
                    if(prev != NULL) prev->next = cur->left, prev = prev->next;  
                    else prev = cur->left, prevHead = prev;  
                }  
                if(cur->right != NULL)  
                {  
                    if(prev != NULL) prev->next = cur->right, prev = prev->next;  
                    else prev = cur->right, prevHead = prev;  
                }  
                cur = cur->next;  
            }  
            if(prev != NULL) prev->next = NULL;  
            else break;  
        }  
    }  
};  

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved