建设网站出什么科目,wordpress 邮件 key,技能培训班,手机网站设计公司可去亿企邦题解:LeetCode题解 解题思想#xff1a; 通过创建辅助指针来解决该问题 当当前节点cur不为空的时候#xff0c;创建辅助节点dummy#xff0c;使其一直作为每一层的第一个节点的前一个节点。 创建辅助指针pre#xff0c;pre初始指向dummy#xff0c;之后通过pre来填充当前层… 题解:LeetCode题解 解题思想 通过创建辅助指针来解决该问题 当当前节点cur不为空的时候创建辅助节点dummy使其一直作为每一层的第一个节点的前一个节点。 创建辅助指针prepre初始指向dummy之后通过pre来填充当前层的next节点 如果cur.left不为空时pre的next节点为cur.left之后pre指针前进同理当cur.right不为空的时候pre的next指针为cur.right,之后pre前进最后当前节点cur前进。 如果cur前进后为空则表示需要开始遍历下一层cur指向dummy的next节点如果cur仍为空则循环结束返回根节点如果cur不为空则表示cur已经指向了下一层的第一个节点处开始该层的遍历。 代码
/*
// Definition for a Node.
class Node {public int val;public Node left;public Node right;public Node next;public Node() {}public Node(int _val) {val _val;}public Node(int _val, Node _left, Node _right, Node _next) {val _val;left _left;right _right;next _next;}
};
*/class Solution {public Node connect(Node root) {if(root null){return null;}Node curroot;while(cur!null){//创建辅助节点Node dummynew Node(0);Node predummy;while(cur!null){if(cur.left!null){pre.nextcur.left;prepre.next;}if(cur.right!null){pre.nextcur.right;prepre.next;}curcur.next;}curdummy.next;}return root;}
}