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...
  • DERRANTCM
  • DERRANTCM
  • 2015年08月12日 06:30
  • 3025

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

Populating Next Right Pointers in Each Node Total Accepted: 44163 Total Submissions: 122231Given a ...
  • a363344923
  • a363344923
  • 2015年03月30日 20:44
  • 1364

[leetcode] 117. Populating Next Right Pointers in Each Node II 解题报告

题目链接:https://leetcode.com/problems/populating-next-right-pointers-in-each-node-ii/ Follow up for p...
  • qq508618087
  • qq508618087
  • 2016年01月13日 06:36
  • 983

Populating Next Right Pointers in Each Node -- LeetCode

原题链接: http://oj.leetcode.com/problems/populating-next-right-pointers-in-each-node/  这道题是要将一棵树的每一层维护...
  • linhuanmars
  • linhuanmars
  • 2014年04月12日 03:11
  • 10257

[leetcode]117. Populating Next Right Pointers in Each Node II

注意一个事实:到根节点的左子节点的next要么指向根节点的右子节点(右子节点不为空),要么就指向根节点的next(或者next的next)节点p,直到该p节点具有下一代的节点。也就是说,将每一层的ne...
  • zorelemn
  • zorelemn
  • 2016年04月14日 16:13
  • 278

Leetcode_116_Populating Next Right Pointers in Each Node

本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/43532817 Given a binary...
  • pistolove
  • pistolove
  • 2015年02月05日 19:18
  • 1148

Populating Next Right Pointers in Each Node II 任意(非完美)二叉树添加next指针 @LeetCode

这道题有些tricky,有时间回头再研究一下 package Level4; import Utility.TreeLinkNode; /** * Populating Next Right...
  • hellobinfeng
  • hellobinfeng
  • 2013年11月21日 04:45
  • 3382

[LeetCode]Populating Next Right Pointers in Each Node II, 解题报告

前言 今天上午从9点半开始就做了这么一道题目,还是挺有意思的,这里记录一下 题目 Follow up for problem "Populating Next Right Pointer...
  • zinss26914
  • zinss26914
  • 2013年12月19日 11:17
  • 7603

Hard-题目6:117. Populating Next Right Pointers in Each Node II

题目原文: Follow up for problem “Populating Next Right Pointers in Each Node”.What if the given tree co...
  • cmershen
  • cmershen
  • 2016年05月31日 23:24
  • 298

【LeetCode with Python】 Populating Next Right Pointers in Each Node

Given a binary tree struct TreeLinkNode { TreeLinkNode *left; TreeLinkNode *right; ...
  • nerv3x3
  • nerv3x3
  • 2014年07月04日 16:26
  • 1280
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Middle-题目17:116. Populating Next Right Pointers in Each Node
举报原因:
原因补充:

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