populating-next-right-pointers-in-each-node(填充每个节点中右下角的指针)
2018-03-27 23:19
567 查看
1.题目
给定一个二叉树 struct TreeLinkNode { TreeLinkNode *left; TreeLinkNode *right; TreeLinkNode * next; } 填充每个下一个指针指向其下一个右侧节点。 如果没有下一个正确的节点,则应将下一个指针设置为NULL。 最初,所有下一个指针都设置为NULL。 例如, 给定以下二叉树, 1 / \ 2 3 / \ \ 4 5 7 调用你的函数后,树应该看起来像这样: 1 -> NULL / \ 2 -> 3 -> NULL / \ \ 4-> 5 -> 7 -> NULL
2.分析过程
该题主要考察的是树的广度优先遍历BFS
3.代码实现
/** * Definition for binary tree with next pointer. * public class TreeLinkNode { * int val; * TreeLinkNode left, right, next; * TreeLinkNode(int x) { val = x; } * } */ //广度优先遍历 import java.util.*; public class Solution { public void connect(TreeLinkNode root) { if(root==null) return ; Queue<TreeLinkNode> queue=new LinkedList<>(); queue.offer(root); while(!queue.isEmpty()){ int n=queue.size(); for(int i=0;i<n;i++){ TreeLinkNode node=queue.poll(); if(node.left!=null) queue.offer(node.left); if(node.right!=null) queue.offer(node.right); if(i<n-1){ node.next=queue.peek(); } } } } }
相关文章推荐
- 【二叉树的递归】06填充每个节点中的下一个正确的指针【Populating Next Right Pointers in Each Node】
- LeetCode OJ 之 Populating Next Right Pointers in Each Node II(为每个结点填充右指针-二)
- [LeetCode] Populating Next Right Pointers in Each Node II 每个节点的右向指针之二
- [LeetCode 116 117] - 填充每一个节点的指向右边邻居的指针I & II (Populating Next Right Pointers in Each Node I & II)
- leetCode 116.Populating Next Right Pointers in Each Node (为节点填充右指针) 解题思路和方法
- [Leetcode] Populating next right pointer in each node 填充每个节点的右指针
- [LeetCode] 116. Populating Next Right Pointers in Each Node 每个节点的右向指针
- leetCode 116.Populating Next Right Pointers in Each Node (为节点填充右指针) 解题思路和方法
- [LeetCode 116 117] - 填充每一个节点的指向右边邻居的指针I & II (Populating Next Right Pointers in Each Node I & II)
- [LeetCode] Populating Next Right Pointers in Each Node 每个节点的右向指针
- LeetCode OJ 之 Populating Next Right Pointers in Each Node (为每个结点填充右指针)
- [Leetcode] Populating next right pointer in each node ii 填充每个节点的右指针
- Populating Next Right Pointers in Each Node--为每一个节点填充next right指针
- 一棵完全二叉树,找到每个节点在这一层右边的点(Populating Next Right Pointers in Each Node)
- Leetcode 116 Populating Next Right Pointers in Each Node 二叉树填充next指针指向右侧结点
- Leetcode 117 Populating Next Right Pointers in Each Node II 二叉树填充next指针指向右侧结点 II
- LeetCode-Populating Next Right Pointers in Each Node-填充结点的右指针-二叉树递归
- (Java) LeetCode 116. Populating Next Right Pointers in Each Node —— 填充同一层的兄弟节点
- 二叉树中增加next指针 Populating Next Right Pointers in Each Node
- LeetCode OJ:Populating Next Right Pointers in Each Node(指出每一个节点的下一个右侧节点)