populating-next-right-pointers-in-each-node-ii(二叉树每层用指针链接)
2017-04-26 23:31
387 查看
题目
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
java实现
import java.util.LinkedList; import java.util.Queue; //利用层次遍历的特点,依次遍历每一层,通过嵌套的一层for循环,很巧妙的控制了每一层的输出 public class Solution { public void connect(TreeLinkNode root) { Queue<TreeLinkNode> q = new LinkedList<TreeLinkNode>(); if (root == null) return; q.add(root); while (!q.isEmpty()) { int count = q.size(); for(int i=0;i<count;i++){ TreeLinkNode node = (TreeLinkNode) q.poll(); if(node.left != null) q.add(node.left); if(node.right != null) q.add(node.right); if(i != count - 1) node.next = q.peek(); } } } }
相关文章推荐
- 【LeetCode-面试算法经典-Java实现】【117-Populating Next Right Pointers in Each Node(二叉树链接右指针II)】
- Populating Next Right Pointers in Each Node II 任意(非完美)二叉树添加next指针 @LeetCode
- [C++]LeetCode: 124 Populating Next Right Pointers in Each Node II(链接二叉树)
- Leetcode 117 Populating Next Right Pointers in Each Node II 二叉树填充next指针指向右侧结点 II
- 【LeetCode-面试算法经典-Java实现】【116-Populating Next Right Pointers in Each Node(二叉树链接右指针)】
- LeetCode OJ 之 Populating Next Right Pointers in Each Node II(为每个结点填充右指针-二)
- [LeetCode 116 117] - 填充每一个节点的指向右边邻居的指针I & II (Populating Next Right Pointers in Each Node I & II)
- 【二叉树的递归】06填充每个节点中的下一个正确的指针【Populating Next Right Pointers in Each Node】
- leetcode: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 每个节点的右向指针之二
- Populating Next Right Pointers in Each Node 完美二叉树添加next指针 @LeetCode
- Leetcode 116 Populating Next Right Pointers in Each Node 二叉树填充next指针指向右侧结点
- [LeetCode 116 117] - 填充每一个节点的指向右边邻居的指针I & II (Populating Next Right Pointers in Each Node I & II)
- 【遍历二叉树】12往二叉树中添加层次链表的信息【Populating Next Right Pointers in Each Node II】
- 按层空间复杂度Populating Next Right Pointers in Each Node II
- LeetCode_Populating Next Right Pointers in Each Node II
- leetcode 79: 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