Populating Next Right Pointers in Each Node II

原创 2015年11月20日 16:26:21
  1. 问题

    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
    
  2. 解答
    class Solution {
    public:
        void connect(TreeLinkNode *root) 
        {
            queue<TreeLinkNode *> qu;
            if(!root) return ;
            qu.push(root);
            
            root->next=NULL;
            while(!qu.empty())
            {
                int len=qu.size();
                for(int i=0;i<len;i++)
                {
                    TreeLinkNode *temp=qu.front();
                    qu.pop();
                    if(i==len-1) 
                        temp->next=NULL;
                    else
                        temp->next=qu.front();
                    
                    if(temp->left)
                    {
                        qu.push(temp->left);
                    }
                    if(temp->right)
                    {
                        qu.push(temp->right);
                    }
                }
                //TreeLinkNode *temp1=qu.front();
               // temp1->next=NULL;
               // qu.pop();
                
            }
        }
    };


版权声明:本文为博主原创文章,未经博主允许不得转载。

【LeetCode-面试算法经典-Java实现】【116-Populating Next Right Pointers in Each Node(二叉树链接右指针)】

【116-Populating Next Right Pointers in Each Node(二叉树链接右指针)】【LeetCode-面试算法经典-Java实现】【所有题目目录索引】原题  Giv...
  • DERRANTCM
  • DERRANTCM
  • 2015年08月12日 06:30
  • 2865

leetcode 150道题目的原题

1:https://oj.leetcode.com/problems/reverse-words-in-a-string/ name:Reverse Words in a String    da...
  • qqqil
  • qqqil
  • 2014年09月22日 21:22
  • 721

【LeetCode-面试算法经典-Java实现】【117-Populating Next Right Pointers in Each Node(二叉树链接右指针II)】

【117-Populating Next Right Pointers in Each Node(二叉树链接右指针II)】【LeetCode-面试算法经典-Java实现】【所有题目目录索引】原题  F...
  • DERRANTCM
  • DERRANTCM
  • 2015年08月13日 06:18
  • 1905

Redis集群配置

1  Redis集群配置 1.1简介 Redis集群是一个由多个节点组成的分布式服务器群,它具有复制、高可用和分片特性; Redis集群没有中心节点,并且带有复制和故障转移特性,这可...
  • awhip9
  • awhip9
  • 2016年09月19日 18:27
  • 194

node.js 中的流程控制一

摘要: 对于在node这种异步框架下的编程,唯一的难题是:如何控制哪些函数顺序执行,哪些函数并行执行。node中并没有内置的控制方法,在这里我分享编写本站程序时用到的一些技巧。 并行VS顺序 在应用程...
  • dai_jing
  • dai_jing
  • 2015年05月22日 18:08
  • 452

for-each循环优先于传统的for循环

对于遍历数组或者集合的元素来说,一般我们都会想到用传统的for循环,要么使用数组下标进行索引,要么使用集合的迭代器进行遍历,迭代器和索引变量在每个循环中出现三次,其中有两次是非常容易出现错误的,一旦出...
  • huahua168168357
  • huahua168168357
  • 2016年09月30日 22:11
  • 658

golang 使用 goquery 抓取 知乎周刊

刚刚玩了一下 goquery 看到最近抓知乎数据的比较多。那我也抓一个玩玩。 我也不跟人家 比数据量什么的了。也不证明golang是最好的语言 只是单单的做练手了 package main i...
  • liangguangchuan
  • liangguangchuan
  • 2016年12月29日 15:51
  • 1876

对express中next函数的一些理解

转载自:http://cnodejs.org/topic/5757e80a8316c7cb1ad35bab对express中next函数的一些理解最近公司在使用node做前后端分离,采用的web框架是...
  • xyr05288
  • xyr05288
  • 2016年07月12日 17:10
  • 3348

Hadoop翻译3-Hadoop全分布式安装

Purpose This document describes how to install and configure Hadoop clusters ranging from a few node...
  • willliuzhangxian
  • willliuzhangxian
  • 2016年09月26日 13:08
  • 306

java数据结构之单链表

在单链表中对表头进行插入或者删除时,时间复杂度为O(1)。 单链表查询指定节点时因为要进行循环查找平均需要查找N/2次,所以时间复杂度为O(N)。 存储密度=数据占用的存储量/整个结点占用的存储量。根...
  • linzhiqiang0316
  • linzhiqiang0316
  • 2016年05月29日 22:51
  • 292
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Populating Next Right Pointers in Each Node II
举报原因:
原因补充:

(最多只允许输入30个字)