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-面试算法经典-Java实现】【116-Populating Next Right Pointers in Each Node(二叉树链接右指针)】

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

Leetcode 116. Populating Next Right Pointers in Each Node

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

leetcode116~Populating Next Right Pointers in Each Node

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

Populating Next Right Pointers in Each Node - LeetCode 116

题目描述: Given a binary tree     struct TreeLinkNode {       TreeLinkNode *left;       TreeLinkNode *r...
  • bu_min
  • bu_min
  • 2015年05月22日 21:00
  • 223

Leetcode-116. Populating Next Right Pointers in Each Node

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

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 欢迎大家关注我的新浪微博,我的新浪微博 欢迎转载,转载请注明出处 (一)题目...

LeetCode(116) Populating Next Right Pointers in Each Node

题目Given a binary tree struct TreeLinkNode { TreeLinkNode *left; TreeLinkNode *right; ...
  • fly_yr
  • fly_yr
  • 2015年10月20日 13:21
  • 310
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Middle-题目17:116. Populating Next Right Pointers in Each Node
举报原因:
原因补充:

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