[leetcode] 116. 填充同一层的兄弟节点

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;
            }
        }
    }
}

原文地址:https://www.cnblogs.com/acbingo/p/9919419.html

时间: 2024-11-17 04:47:42

[leetcode] 116. 填充同一层的兄弟节点的相关文章

[LeetCode] 116. 填充每个节点的下一个右侧节点指针

题目链接 : https://leetcode-cn.com/problems/populating-next-right-pointers-in-each-node/ 题目描述: 给定一个完美二叉树,其所有叶子节点都在同一层,每个父节点都有两个子节点.二叉树定义如下: struct Node { int val; Node *left; Node *right; Node *next; } 填充它的每个 next 指针,让这个指针指向其下一个右侧节点.如果找不到下一个右侧节点,则将 next

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

jquery的父子兄弟节点查找示例代码

jQuery.parent(expr) 找父亲节点,可以传入expr进行过滤,比如$("span").parent()或者$("span").parent(".class") jQuery.parents(expr),类似于jQuery.parents(expr),但是是查找所有祖先元素,不限于父元素 jQuery.children(expr).返回所有子节点,这个方法只会返回直接的孩子节点,不会返回所有的子孙节点 jQuery.contents

【JS学习笔记】DOM基础-首尾子节点,兄弟节点

一.DOM节点 (1)首尾子节点 有兼容性问题 firstChild.firstElementChild firstChild在高版本的浏览器上具有兼容问题,firstChild在高版本浏览器中指的是文本元素. firstElementChild高级浏览器下可以使用,在IE6-8下反而不兼容. 解决兼容性的办法是使用if进行判断 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://

DevExpress TreeList 拖动时中如何判断源节点作为目标节点的子节点还是兄弟节点

Posted on 2012-01-10 14:02 marcozh 阅读(1738) 评论(3) 编辑 收藏 最近用了Dev的Treelist控 件,其中用到了拖动方法.众所周知的是,Dev的Treelist封装了原先用递归才能实现的树状显示,所以写代码非常方便.以前我做树形表,还需要一些 辅助字段如Level.HasChild等,维护起来也有点小麻烦,现在只要一个ParentId字段就够了,只要设置一下KeyFieldName和 ParentFieldName就可以了. 如: tlCateg

js 获取元素所有兄弟节点实例

比如一个ul里面有10个li,而第3个li上有特殊的样式(比如颜色为红色,其他为黑色).我想把其他所有li——不包括红的li——的颜色也设为红色,此时,就需要获得红li的所有兄弟节点. 兄弟,就是和你平辈的,既不是上一级也不是下一级,而且可能有比你大的(兄),也可能比你小(弟).兄弟节点同理,下面是一个常规的获取兄弟节点的办法. 代码如下 复制代码 function siblings(elm) { var a = []; var p = elm.parentNode.children; for(

访问兄弟节点

访问兄弟节点 1. nextSibling 属性可返回某个节点之后紧跟的节点(处于同一树层级中). 语法: nodeObject.nextSibling 说明:如果无此节点,则该属性返回 null. 2. previousSibling 属性可返回某个节点之前紧跟的节点(处于同一树层级中). 语法: nodeObject.previousSibling 说明:如果无此节点,则该属性返回 null. 注意: 两个属性获取的是节点.Internet Explorer 会忽略节点间生成的空白文本节点(

关于JS中查看当前节点的兄弟节点的使用

<tr> <td align="center"><input style="width: 20px;" type="checkbox" name="ck" /></td> <td align="left"><input name="wgrkbillentry[0].fitemid" maxlength="50&q

JQuery的父、子、兄弟节点查找,节点的子节点循环

JQuery的父.子.兄弟节点查找,节点的子节点循环: http://www.cnblogs.com/mingforyou/p/4410054.html