leetcode117. 填充每个节点的下一个右侧节点指针 II(层序遍历08)
生活随笔
收集整理的這篇文章主要介紹了
leetcode117. 填充每个节点的下一个右侧节点指针 II(层序遍历08)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一:題目
二:上碼
/* // 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;} };總結
以上是生活随笔為你收集整理的leetcode117. 填充每个节点的下一个右侧节点指针 II(层序遍历08)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 刺儿菜的功效与作用、禁忌和食用方法
- 下一篇: leetcode104. 二叉树的最大深