zoukankan      html  css  js  c++  java
  • leetcode

    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

    /**
     * Definition for binary tree with next pointer.
     * struct TreeLinkNode {
     *  int val;
     *  TreeLinkNode *left, *right, *next;
     *  TreeLinkNode(int x) : val(x), left(NULL), right(NULL), next(NULL) {}
     * };
     */
    struct TreeLinkNode
    {
    	int val;
    	TreeLinkNode *left, *right, *next;
    	TreeLinkNode(int x) : val(x), left(NULL), right(NULL), next(NULL) {}
    };
    class Solution {
    public:
        void connect(TreeLinkNode *root) {
    		TreeLinkNode *head = NULL;
    		TreeLinkNode *prev = NULL;
    		TreeLinkNode *cur  = root;
    		while(cur != NULL)
    		{
    			while(cur != NULL)
    			{
    				if(cur->left != NULL)
    				{
    					if(prev != NULL)
    					{
    						prev->next = cur->left;
    					}
    					else
    					{
    						head = cur->left;
    					}
    					prev = cur->left;
    				}
    				if(cur->right != NULL)
    				{
    					if(prev != NULL)
    					{
    						prev->next = cur->right;
    					}
    					else
    					{
    						head = cur->right;
    					}
    					prev = cur->right;
    				}
    				cur = cur->next;
    			}
    			cur = head;
    			head = NULL;
    			prev = NULL;
    		}
        }
    };


  • 相关阅读:
    C#发送邮件简单例子
    ABAP随笔
    日期格式转换
    正则校验金额,整数8位,小数3位。
    angular语法运用技巧
    Oracle中连接与加号(+)的使用
    含有代码分析的面试题
    面试的java题目
    递归查询
    本地没有ORACLE远程登录oracle服务器
  • 原文地址:https://www.cnblogs.com/yxwkf/p/5079905.html
Copyright © 2011-2022 走看看