节点的下一个右侧节点指针 II"/>
【每日一题】117. 填充每个节点的下一个右侧节点指针 II
题目:
给定一个二叉树:
struct Node {int val;Node *left;Node *right;Node *next; }
填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为 NULL
。
初始状态下,所有 next 指针都被设置为 NULL
。
解答:
代码:
/*
// 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;}Queue<Node> queue=new ArrayDeque<Node>();queue.offer(root);while(!queue.isEmpty()){int n=queue.size();Node last=null;for(int i=1;i<=n;i++){Node f=queue.poll();if(f.left!=null){queue.offer(f.left);}if(f.right!=null){queue.offer(f.right);}if(i!=1){last.next=f;}last=f;}}return root;}
}
结果:
更多推荐
【每日一题】117. 填充每个节点的下一个右侧节点指针 II
发布评论