leetcode116. 填充每个节点的下一个右侧节点指针(层序遍历07)
生活随笔
收集整理的這篇文章主要介紹了
leetcode116. 填充每个节点的下一个右侧节点指针(层序遍历07)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一:題目
二:上碼
/* // Definition for a Node. class Node { public:int val;Node* left;Node* right;Node* next;Node() : val(0), left(NULL), right(NULL), next(NULL) {}Node(int _val) : val(_val), left(NULL), right(NULL), next(NULL) {}Node(int _val, Node* _left, Node* _right, Node* _next): val(_val), left(_left), right(_right), next(_next) {} }; */class Solution { public:Node* connect(Node* root) {/**思路:雖然很明顯這道題是用層序遍歷,但是沒太理解題意,看了題解才明白,這是在原來的二叉樹上做些操作,我們需要是將每層的結點用next指針連起來,這個操作在我們遍歷每層結點可以操作**/queue<Node*>q;if(root) q.push(root);while(!q.empty()) {int size = q.size();Node* head; Node* node;for(int i = 0; i < size; i++) {if(i == 0) {head = q.front();//這是頭結點q.pop();node = head;//處理其結點的孩子節點}else{node = q.front();//這是頭結點的后續結點q.pop();head->next = node;head = head->next;}if(node->left) q.push(node->left);if(node->right) q.push(node->right);}head->next = NULL;//最后的指針指向空}return root;} };總結
以上是生活随笔為你收集整理的leetcode116. 填充每个节点的下一个右侧节点指针(层序遍历07)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: leetcode 515. 在每个树行中
- 下一篇: leetcode117. 填充每个节点的