LeetCode Populating Next Right Pointers in Each Node I and II
来源:互联网 发布:大数据平台成熟度评估 编辑:程序博客网 时间:2024/05/16 11:29
题目:
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.
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题意:
就是给定一棵任意的二叉树,然后调用这个connect函数后,就能够使得最后输出成,每一个节点的next指向同一层的后一个节点,每一层的最后一个节点的next为空,那么最后得到第二幅图的这种树的结构。此题就是典型的采用层次遍历来做。下面代码的方法不管是完全二叉树还是非完全二叉树,都是屡试不爽,都很成功,是一种非常好的层次遍历的方法。
public class Solution { public void connect(TreeLinkNode root){LinkedList<TreeLinkNode> list = new LinkedList<TreeLinkNode>();if(root == null)return;else{list.add(root);int length = list.size();while(!list.isEmpty()){while(length-- > 0){TreeLinkNode node = list.peek(); list.poll(); if(length == 0) node.next = null; else node.next = list.peek(); if(node.left != null) list.add(node.left); if(node.right != null) list.add(node.right);}length = list.size();}}}}
0 0
- 【LeetCode】Populating Next Right Pointers in Each Node I & II
- LeetCode:Populating Next Right Pointers in Each Node I & II
- [LeetCode] Populating Next Right Pointers in Each Node I &II
- LeetCode:Populating Next Right Pointers in Each Node I&II
- [Leetcode]Populating Next Right Pointers in Each Node I && II
- LeetCode - Populating Next Right Pointers in Each Node I && II
- 【leetcode】Populating Next Right Pointers in Each Node I&&II
- [LeetCode] Populating Next Right Pointers in Each Node I, II
- [LeetCode]Populating Next Right Pointers in Each Node I & II
- Populating Next Right Pointers in Each Node and II[LeetCode]
- LeetCode题解:Populating Next Right Pointers in Each Node I and II
- 【LeetCode】Populating Next Right Pointers in Each Node(I and II)
- leetcode 116:Populating Next Right Pointers in Each Node I And II
- LeetCode Populating Next Right Pointers in Each Node I and II
- [Leetcode][python]Populating Next Right Pointers in Each Node I and II
- 【LeetCode】Populating Next Right Pointers in Each Node Populating Next Right Pointers in Each Node II
- LeetCode Populating Next Right Pointers in Each Node & Populating Next Right Pointers in Each Node I
- Populating Next Right Pointers in Each Node (I & II)
- c++虚函数
- raw_input() 与input()
- 实现Discuz x3.1 读写分离
- Codeforces Round #333 (Div. 2) B. Approximating a Constant Range
- HTML5 Canvas画标准的五星红旗(中国国旗)
- LeetCode Populating Next Right Pointers in Each Node I and II
- OnInitDialog不执行
- fdisk -l详解
- C++:string转char*
- 404错误的处理方式及对SEO的影响
- Apache Prefork、Worker和Event三种MPM工作模式分析
- bcdedit无法打开启动配置数据存储
- linux 下shell
- 冒泡排序