关闭

[LeetCode] 117. Populating Next Right Pointers in Each Node II

标签: leetcode遍历
56人阅读 评论(0) 收藏 举报
分类:

思路:
BFS. 拿三个节点, head表示下一层的头, prev表示下一层上次遍历到了谁, cur是当前层正在遍历的点.

void connect(TreeLinkNode *root) {
    TreeLinkNode* head = root;
    TreeLinkNode* prev = NULL;
    TreeLinkNode* cur = NULL;

    while (head) {
        cur = head;
        prev = NULL;
        head = NULL;

        while (cur) {
            if (cur->left) {
                if (! head)
                    head = cur->left;
                else
                    prev->next = cur->left;
                prev = cur->left;
            }
            if (cur->right) {
                if (! head)
                    head = cur->right;
                else
                    prev->next = cur->right;
                prev = cur->right;
            }
            cur = cur->next;
        }
    }
}
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:14046次
    • 积分:1861
    • 等级:
    • 排名:千里之外
    • 原创:182篇
    • 转载:3篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档