LeetCode: Populating Next Right Pointers in Each Node
Nic

Nic @snj

About: Programming for 16 years. Write stuff about programming and writing on coderscat.com. Programming languages, security, algorithms.

Joined:
Sep 18, 2019

LeetCode: Populating Next Right Pointers in Each Node

Publish Date: Oct 19 '20
1 0

2020_07_15_populating-next-right-pointers-in-each-node.org_20200715_144225.png

Iteractive algorithm with queue

This is a simple version of level-order traverse.

class Solution {
public:
    Node* connect(Node* root) {
        queue<Node*> Q;
        Node* cur;
        if(root) Q.push(root);
        while(!Q.empty()) {
            int sz = Q.size();
            Node* pre = NULL;
            for(int i=0; i<sz; i++) {
                cur = Q.front(); Q.pop();
                if(cur->left) Q.push(cur->left);
                if(cur->right) Q.push(cur->right);
                if(pre) pre->next = cur;
                pre = cur;
            }
        }
        return root;
    }
};

Enter fullscreen mode Exit fullscreen mode

The post LeetCode: Populating Next Right Pointers in Each Node appeared first on Coder's Cat.

Comments 0 total

    Add comment