博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode 114| Flatten Binary Tree to Linked List(二叉树转化成链表)
阅读量:6001 次
发布时间:2019-06-20

本文共 900 字,大约阅读时间需要 3 分钟。

题目

给定一个二叉树,原地将它展开为链表。例如,给定二叉树    1   / \  2   5 / \   \3   4   6将其展开为:1 \  2   \    3     \      4       \        5         \          6

解析

  • 通过递归实现;可以用先序遍历,然后串成链表
  • 主要思想就是:先递归对右子树进行链表化并记录,然后将root->right指向 左子树进行链表化后的头结点,然后一直向右遍历子树,连接上之前的右子树
/** * Definition for a binary tree node. * struct TreeNode { *     int val; *     TreeNode *left; *     TreeNode *right; *     TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public:    TreeNode* treetolist(TreeNode* root)    {        if(!root)            return NULL;        TreeNode* right=treetolist(root->right); //记录右子树        root->right=treetolist(root->left);        root->left=NULL;                TreeNode* cur=root;        while(cur->right)        {            cur=cur->right;        }        cur->right=right;        return root;    }    void flatten(TreeNode* root) {                treetolist(root);    }};
  • 理解上面代码过后就容易理解:

转载地址:http://qgbmx.baihongyu.com/

你可能感兴趣的文章
64位linux下的gns3网络模拟器配置
查看>>
让VMware ESX中的虚拟机随esx开机自动启动
查看>>
Electron Cash钱包存BCH教程
查看>>
自定义key解决zabbix端口监听取值不准确的问题
查看>>
入门级----黑盒测试、白盒测试、手工测试、自动化测试、探索性测试、单元测试、性能测试、数据库性能、压力测试、安全性测试、SQL注入、缓冲区溢出、环境测试...
查看>>
composer 安装 ubuntu 12.04
查看>>
微服务(二)hystrix
查看>>
Performing a thread dump in Linux or Windows--reference
查看>>
推荐系统中常用算法 以及优点缺点对比
查看>>
cocos2d-x v3.2环境配置(现在3.x版本号可以配置该)
查看>>
穷举法解决旅行商问题
查看>>
Go语言标准库之JSON编解码
查看>>
winpcap 发送数据包
查看>>
cisco 出现 %Error opening tftp://255.255.255.255 错误解决办法
查看>>
VIM编辑器
查看>>
IE主页被篡改 地址框变灰
查看>>
linux上架设l2tp+ipsec ***服务器
查看>>
Facebook和用户界面会如何扭曲你说的话
查看>>
安卓混合开发之Cordova,NativeWebView两种实现
查看>>
桶排序
查看>>