Populating Next Right Pointers in Each Node II LeetCode[通俗易懂]

Populating Next Right Pointers in Each Node II LeetCode

大家好,又见面了,我是全栈君。

Populating Next Right Pointers in Each Node II

 
Total Accepted: 18934 
Total Submissions: 62031
My Submissions

Follow up for problem “Populating Next Right Pointers in Each Node“.

What if the given tree could be any binary tree? Would your previous solution still work?

Note:

  • You may only use constant extra space.

For example,
Given the following binary tree,

         1
       /  \
      2    3
     / \    \
    4   5    7

After calling your function, the tree should look like:

         1 -> NULL
       /  \
      2 -> 3 -> NULL
     / \    \
    4-> 5 -> 7 -> NULL

Have you been asked this question in an interview? 

/**
 * Definition for binary tree with next pointer.
 * public class TreeLinkNode {
 *     int val;
 *     TreeLinkNode left, right, next;
 *     TreeLinkNode(int x) { val = x; }
 * }
 */
public class Solution {
    public void connect(TreeLinkNode root) {
        if (root == null){
            return ;
        }
        Queue<TreeLinkNode> queue = new LinkedList<TreeLinkNode>();
        queue.offer(root);
        while(!queue.isEmpty()){
            int qSize = queue.size();
            TreeLinkNode preNode = null;
            for (int i = 0; i < qSize; i++){
                TreeLinkNode curNode = queue.poll();
                curNode.next = preNode;
                preNode = curNode;
                if (curNode.right != null){
                    queue.offer(curNode.right);
                }
                if (curNode.left != null){
                    queue.offer(curNode.left);
                }
            }
        }
    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/115891.html原文链接:https://javaforall.net

(0)
上一篇 2022年1月29日 上午8:00
下一篇 2022年1月29日 上午9:00


相关推荐

  • 怎样设置CCProxy

    怎样设置CCProxy怎样设置 CCProxy 代理服务器 CCProxy 能够实现局域网内共享上网和帐号控制 界面友好 设置简单 功能强大 支持 Modem ADSL 宽带等共享上网 支持网页缓存 能实现多人共享浏览网页 收发邮件和联络 同时还能监视上网记录 可以针对不同用户合理的安排上网时间和带宽流量控制 有效地进行网站过滤 是非常适合政府部门 公司和学校使用的代理服务器软件 它能帮您搭建

    2025年10月8日
    7
  • DataGrip破解激活码_通用破解码

    DataGrip破解激活码_通用破解码,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月16日
    294
  • MATLAB数字图像处理(一)图像的基本操作

    MATLAB数字图像处理(一)图像的基本操作写在前头 说到数字图像处理 不得不提起 MATLAB 这是一款非常方便的仿真软件 绝大多数的图像处理可以用 MATLAB 完成 有人问 处理图片 用 PS 岂不是更好 两者各有优点 如果需要将 1 幅图片转换成灰度图像并保存呢 MATLAB 只需要一段很短的程序运行几秒就可以完成这个工作 本文基于 MatlabR2012a 将由浅入深写下去 MATLAB 中图像的基本操作

    2026年3月26日
    2
  • C语言程序设计第五版 谭浩强 第四章 课后习题 答案

    C语言程序设计第五版 谭浩强 第四章 课后习题 答案谭浩强 C 语言程序设计第五版第 4 章课后习题答案 1 什么是算术运算 什么是关系运算 什么是逻辑运算 答 算术运算时数学里基础的加减乘数求余数等 关系运算时求两个或者多个变量或者表达式之间的关系 逻辑运算时将多个变量或者表达式链接起来的逻辑关系 C 语言程序设计第五版课后答案谭浩强 2 C 语言中如何表示 真 和 假 系统如何判断一个量的 真 和 假 答 C 语言中将数值为 1 作为真 为 0 作

    2026年3月19日
    2
  • 汇编语言—移位指令

    汇编语言—移位指令移位指令是一组经常使用的指令,包括:算数移位、逻辑移位、双精度移位、循环移位、带进位的循环移位;移位指令都有一个指定需要移动的二进制位数的操作数,该操作数可以是立即数,也可以是CL的值;在8086中,该操作数只能是1,但是在其后的CPU中,该立即数可以是定义域[1,31]之内的数;一、算数移位指令:算数移位指令分为:算数左移SAL(ShiftAlgebraicLeft)和算数右移S

    2022年5月29日
    38
  • 如何学习嵌入式软件

    如何学习嵌入式软件什么是嵌入式?嵌入式分为广义和狭义两种。广义的嵌入式就是片上系统(systemonachip),包括单片机、PSOC、NIOS、Microblaze等。而狭义的嵌入式就是ARM9、cortexA8等特定的跑操作系统的芯片。这里主要介绍狭义嵌入式的学习路线。还是主流的方法,先学会使用它,再深入研究底层。常用的嵌入式操作系统有Linu…

    2022年6月5日
    47

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号