1. 程式人生 > >[leetcode] 117. 填充同一層的兄弟節點 II

[leetcode] 117. 填充同一層的兄弟節點 II

ise public bing desc blog point con -i while

117. 填充同一層的兄弟節點 II

與116. 填充同一層的兄弟節點完全一樣,二叉樹的層次遍歷。。這是這次不是完美二叉樹了

class Solution {
    public void connect(TreeLinkNode root) {
        if (root == null) return;
        LinkedList<TreeLinkNode> queue = new LinkedList<>();
        queue.offer(root);

        TreeLinkNode flag = root;
        TreeLinkNode last = null;

        while (!queue.isEmpty()) {
            TreeLinkNode nowNode = queue.poll();

            if (last != null) {
                last.next = nowNode;
            }

            if (nowNode.left != null) queue.add(nowNode.left);
            if (nowNode.right != null) queue.add(nowNode.right);

            last = nowNode;

            if (flag == nowNode) {
                nowNode.next = null;
                flag = queue.peekLast();
                last = null;
            }
        }
    }
}

[leetcode] 117. 填充同一層的兄弟節點 II