leetcode 116填充每个节点的下一个右侧节点指针
Posted Joel_Wang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode 116填充每个节点的下一个右侧节点指针相关的知识,希望对你有一定的参考价值。
time O(n) ,sapce O(n)
/* // Definition for a Node. class Node { public: int val; Node* left; Node* right; Node* next; Node() {} Node(int _val, Node* _left, Node* _right, Node* _next) { val = _val; left = _left; right = _right; next = _next; } }; */ /** 层序遍历,然后每一层左边节点指向右边节点,最后一个节点指向NULL **/ class Solution { public: Node* connect(Node* root) { if(root==NULL||root->left==NULL) return root; queue<Node*>q; q.push(root->left),q.push(root->right); while(!q.empty()){ int k=q.size(); Node* l,*r=q.front(); q.pop(); if(r->left) q.push(r->left),q.push(r->right); for(int i=1;i<k;i++){ l=r,r=q.front();q.pop(); l->next=r; if(r->left) q.push(r->left),q.push(r->right); } } return root; } };
以上是关于leetcode 116填充每个节点的下一个右侧节点指针的主要内容,如果未能解决你的问题,请参考以下文章
[LeetCode] 116. 填充每个节点的下一个右侧节点指针
LeetCode Algorithm 116. 填充每个节点的下一个右侧节点指针
LeetCode Algorithm 116. 填充每个节点的下一个右侧节点指针
LeetCode 116. 填充每个节点的下一个右侧节点指针