3월 3일 [Go_deep]Populating Next Right Pointers in Each Node

2242 단어 right
원제:Populating Next Right Pointers in Each Node
간단한 체인 트리는 Next 노드 정보를 증가시켜 구덩이가 없습니다.그래도 WA를 두 번이나 했는데 주문이 있어서 계속 해요. 그리고 leetcode는 모두 150문제예요. 2주 동안 생각해 봐요. 빨리 해야 돼요.
주의: 좌우와 귀속을 똑똑히 보아라. 제목처럼 Go_깊지?
/**

 * 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) {

        if (root == NULL) return;

        

        if (root->left != NULL)

        {

            root->left->next = root->right;

            

            TreeLinkNode *go_deep_left = root->left->right;

            TreeLinkNode *go_deep_right = (root->right != NULL)?(root->right->left):NULL;

            

            while (go_deep_left != NULL && go_deep_right != NULL)

            {

                go_deep_left->next = go_deep_right;

                

                go_deep_left = go_deep_left->right;

                go_deep_right = go_deep_right->left;

            }

        }

        

        connect(root->right);

        connect(root->left);

    }

};

좋은 웹페이지 즐겨찾기