Middle-题目17:116. Populating Next Right Pointers in Each Node

原创 2016年05月31日 15:40:41

题目原文:
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.
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

题目大意:
给一个二叉树加一个Next指针,指向右邻节点。
题目分析:
对每个根节点,其左孩子的next是右孩子,右孩子的next是next的左孩子。再递归对左子树和右子树调用这个函数,注意一些边界情况(叶子节点,空节点等)即可。
源码:(language:java)

public class Solution {
    public void connect(TreeLinkNode root) {
        if(root==null)
            return;
        else if(root.left == null && root.right == null && root.next == null) { // root is a leaf node
            root.next=null;
            return;
        } 
        else {
            if(root.left != null)
                root.left.next = root.right;
            if(root.right != null && root.next != null)
                root.right.next = root.next.left;
            if(root.right != null && root.next == null)
                root.right.next = null;         
            connect(root.left);
            connect(root.right);
        }
    }
}

成绩:
0ms,beats 81.60%,众数1ms,52.14%

版权声明:完整版Leetcode题解请出门左转https://github.com/cmershen1/leetcode/tree/master/docs

相关文章推荐

Leetcode 116. Populating Next Right Pointers in Each Node

Given a binary treestruct TreeLinkNode { TreeLinkNode *left; TreeLinkNode *right; TreeLinkNode...

LeetCode 116 Populating Next Right Pointers in Each Node 解题报告

Populating Next Right Pointers in Each Node Total Accepted: 44163 Total Submissions: 122231Given a ...

leetcode116~Populating Next Right Pointers in Each Node

Given a binary treestruct TreeLinkNode { TreeLinkNode *left; TreeLinkNode *right; TreeLinkNode...

【LeetCode-面试算法经典-Java实现】【116-Populating Next Right Pointers in Each Node(二叉树链接右指针)】

【116-Populating Next Right Pointers in Each Node(二叉树链接右指针)】【LeetCode-面试算法经典-Java实现】【所有题目目录索引】原题  Giv...

Populating Next Right Pointers in Each Node - LeetCode 116

题目描述: Given a binary tree     struct TreeLinkNode {       TreeLinkNode *left;       TreeLinkNode *r...

Leetcode-116. Populating Next Right Pointers in Each Node

前言:为了后续的实习面试,开始疯狂刷题,非常欢迎志同道合的朋友一起交流。因为时间比较紧张,目前的规划是先过一遍,写出能想到的最优算法,第二遍再考虑最优或者较优的方法。如有错误欢迎指正。博主首发CSDN...

116. Populating Next Right Pointers in Each Node

题目:Populating Next Right Pointers in Each Node原题链接:https://leetcode.com/problems/populating-next-rig...

leetcode 116:Populating Next Right Pointers in Each Node I And II

Given a binary tree struct TreeLinkNode { TreeLinkNode *left; TreeLinkNode *right; ...

[leetcode] 116.Populating Next Right Pointers in Each Node

题目: Given a binary treestruct TreeLinkNode { TreeLinkNode *left; TreeLinkNode *right; TreeLin...

【一天一道LeetCode】#116. Populating Next Right Pointers in Each Node

一天一道LeetCode 本系列文章已全部上传至我的github,地址:ZeeCoder‘s Github 欢迎大家关注我的新浪微博,我的新浪微博 欢迎转载,转载请注明出处 (一)题目...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)