• LeetCode OJ-- Flatten Binary Tree to Linked List **


    https://oj.leetcode.com/problems/flatten-binary-tree-to-linked-list/

    二叉树的处理,将二叉树转换成类似一个单链表的东东,并且原地。

    类似于先跟遍历的顺序。

    定义函数 

    TreeNode* subflatten(TreeNode *root)
    并将返回值设置为,先转换出来链表的最后一个位置。

    struct TreeNode {
        int val;
        TreeNode *left;
    TreeNode
    *right; TreeNode(int x) : val(x), left(NULL), right(NULL) {} }; class Solution { public: void flatten(TreeNode *root) { if(root == NULL) return; subflatten(root); } TreeNode* subflatten(TreeNode *root) { if(root->left == NULL && root->right == NULL) return root; if(root->left == NULL && root->right!= NULL) return subflatten(root->right); //remember root right for temporary TreeNode *tempr = new TreeNode(0); tempr = root->right; root->right = root->left; root->left = NULL; TreeNode *retNode = subflatten(root->right); if(tempr == NULL) return retNode; retNode->right = tempr; TreeNode *retNode2 = subflatten(tempr); return retNode2; } };
  • 相关阅读:
    HSF原理
    Spring IOC 容器源码分析
    Spring Bean注册和加载
    CAP和BASE理论
    Java内存模型
    Java线程模型
    IO复用、多进程和多线程三种并发编程模型
    无锁编程本质论
    An Introduction to Lock-Free Programming
    安装与配置ironic
  • 原文地址:https://www.cnblogs.com/qingcheng/p/3819593.html
Copyright © 2020-2023  润新知