博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[Leetcode] Populating Next Right Pointers in Each Node
阅读量:6372 次
发布时间:2019-06-23

本文共 2079 字,大约阅读时间需要 6 分钟。

Given a binary tree

struct TreeLinkNode {      TreeLinkNode *left;      TreeLinkNode *right;      TreeLinkNode *next;    }

 

Populate each next pointer to point to its next right node. If there is no next right node, the next pointer should be set to NULL.

Initially, all next pointers are set to NULL.

Note:

  • You may only use constant extra space.
  • You may assume that it is a perfect binary tree (ie, all leaves are at the same level, and every parent has two children).

 

For example,

Given the following perfect binary tree,

1       /  \      2    3     / \  / \    4  5  6  7

 

After calling your function, the tree should look like:

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

层次遍历

1 /** 2  * Definition for binary tree with next pointer. 3  * struct TreeLinkNode { 4  *  int val; 5  *  TreeLinkNode *left, *right, *next; 6  *  TreeLinkNode(int x) : val(x), left(NULL), right(NULL), next(NULL) {} 7  * }; 8  */ 9 class Solution {10 public:11     void connect(TreeLinkNode *root) {12        if (root == NULL) {13             return;14         }15         queue
q;16 TreeLinkNode *p;17 int idx = 1, n;18 q.push(root);19 while (!q.empty()) {20 n = idx - 1;21 idx = 0;22 p = q.front();23 if (q.front()->left != NULL) {24 q.push(q.front()->left);25 idx++;26 }27 if (q.front()->right != NULL) {28 q.push(q.front()->right);29 idx++;30 }31 q.pop();32 for (int i = 0; i < n; ++i) {33 p->next = q.front();34 if (q.front()->left != NULL) {35 q.push(q.front()->left);36 idx++;37 }38 if (q.front()->right != NULL) {39 q.push(q.front()->right);40 idx++;41 }42 p = p->next;43 q.pop();44 }45 p->next = NULL;46 } 47 }48 };

 

 

转载地址:http://bhuqa.baihongyu.com/

你可能感兴趣的文章
Spring核心系列之Bean的生命周期
查看>>
VasSonic源码之并行加载
查看>>
小程序 LRU 存储设计
查看>>
Android 多线程之阻塞队列
查看>>
Haskell 在 macOS 下的环境搭建
查看>>
适配mpvue平台的的微信小程序日历组件mpvue-calendar
查看>>
【Linux学习】 Redis常用的一些指令
查看>>
Spring Cloud 中使用Feign解决参数注解无法继承的问题
查看>>
数据迁移方案 + Elasticsearch在综合搜索列表实现
查看>>
干货 | 分分钟教你用Python创建一个区块链
查看>>
Angular开发实践(八): 使用ng-content进行组件内容投射
查看>>
canvas+websocket+vue做一个完整的你画我猜小游戏
查看>>
android复习清单
查看>>
工作代码备用
查看>>
spring cloud互联网分布式微服务云平台规划分析--spring cloud定时调度平台
查看>>
说说如何配置 Webpack
查看>>
小程序中使用箭头函数的问题
查看>>
走进 JDK 之 Long
查看>>
Android打地鼠游戏的修改和优化
查看>>
Java异常
查看>>