[LeeCode]116. Populating Next Right Pointers in Each Node
来源:互联网 发布:80端口不通怎么办 编辑:程序博客网 时间:2024/06/07 01:09
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
思路:采用层次遍历的方法,针对每一层进行处理
代码如下:
/** * 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; int thislevel = 1; int nextlevel = 0; LinkedList<TreeLinkNode> q = new LinkedList<TreeLinkNode>(); q.add(root); while(q.isEmpty() == false) { while(thislevel > 0) { TreeLinkNode temp = q.poll(); thislevel--; if (thislevel == 0) temp.next = null; else temp.next = q.peek(); if(temp.left != null) { nextlevel += 2; q.offer(temp.left); q.offer(temp.right); } } thislevel = nextlevel; nextlevel = 0; } } }
0 0
- [LeeCode]116. Populating Next Right Pointers in Each Node
- leecode 解题总结:116. Populating Next Right Pointers in Each Node
- Populating Next Right Pointers in Each Node
- Populating Next Right Pointers in Each Node
- Populating Next Right Pointers in Each Node
- Populating Next Right Pointers in Each Node
- Populating Next Right Pointers in Each Node
- Populating Next Right Pointers in Each Node
- Populating Next Right Pointers in Each Node
- Populating Next Right Pointers in Each Node
- Populating Next Right Pointers in Each Node
- Populating Next Right Pointers in Each Node
- Populating Next Right Pointers in Each Node
- Populating Next Right Pointers in Each Node
- Populating Next Right Pointers in Each Node
- Populating Next Right Pointers in Each Node
- Populating Next Right Pointers in Each Node
- Populating Next Right Pointers in Each Node
- Lock
- Mac下上传本地代码仓到github流程
- 使用QtCreator进行Linux内核开发
- Android 使用Service实现不间断的网络请求
- Linux crontab 计划命令
- [LeeCode]116. Populating Next Right Pointers in Each Node
- js兼容性错误导致没有办法留言
- android 正方形九宫格View设置
- [.Net码农].net调用外部exe文件
- 斐波那契数列的素数个数
- 前端开发知识结构
- PHP学习笔记
- 几种设计模式
- Android SDK更新以及ADT更新出现问题的解决办法