美文网首页
LeetCode 第117题:填充每个节点的下一个右侧节点指针I

LeetCode 第117题:填充每个节点的下一个右侧节点指针I

作者: 放开那个BUG | 来源:发表于2020-08-18 22:28 被阅读0次

1、前言

题目描述

2、思路

用116题的思路。

3、代码

/*
// 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 root;
        }

        LinkedList<Node> queue = new LinkedList<>();
        queue.offer(root);

        while(!queue.isEmpty()){
            int size = queue.size();

            Node p = queue.get(0);
            for(int i = 1; i < size; i++){
                Node q = queue.get(i);
                p.next = q;
                p = q;
            }

            for(int i = 0; i < size; i++){
                Node cur = queue.poll();
                if(cur.left != null){
                    queue.offer(cur.left);
                }
                if(cur.right != null){
                    queue.offer(cur.right);
                }
            }
        }

        return root;
    }
}

相关文章

网友评论

      本文标题:LeetCode 第117题:填充每个节点的下一个右侧节点指针I

      本文链接:https://www.haomeiwen.com/subject/kjwddktx.html