日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

leetcode117. 填充每个节点的下一个右侧节点指针 II(层序遍历08)

發布時間:2023/12/4 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。