您的位置:首页 > Web前端 > Node.js

[LeetCode] Populating Next Right Pointers in Each Node 解题报告

2016-01-12 11:07 567 查看
Given a binary tree
struct TreeLinkNode {
TreeLinkNode *left;
TreeLinkNode *right;
TreeLinkNode *next;
}


Populate each next pointer to point to its next right node. If there is no next right node, the next pointer should be set to
NULL
.
Initially, all next pointers are set to
NULL
.
Note:[/b]

You may only use constant extra space.

You may assume that it is a perfect binary tree (ie, all leaves are at the same level, and every parent has two children).

For example,
Given the following perfect binary tree,
1
/
2    3
/   /
4  5  6  7


After calling your function, the tree should look like:
1 -> NULL
/
2 -> 3 -> NULL
/   /
4->5->6->7 -> NULL


» Solve this problem

[解题报告]
当前层处理完next指针的连接以后,再调用下一级节点。

[code]1:   void connect(TreeLinkNode *root) {
2:      // Start typing your C/C++ solution below
3:      // DO NOT write int main() function
4:      if(root == NULL) return;
5:      if(root->left != NULL)
6:        root->left->next = root->right;
7:      if(root->right !=NULL)
8:        root->right->next = root->next? root->next->left:NULL;
9:       connect(root->left);
10:       connect(root->right);
11:    }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: