博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Leetcode: Flatten Binary Tree to Linked List
阅读量:6470 次
发布时间:2019-06-23

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

Q: 如何返回一颗子树的最后一个节点?

A: 如果有有右子树, 则最右节点在左子树上, 否则在左子树上

 

思路:

1. 题目要求转换要 in-place

2. 函数 preorder(root) 返回以 root 为根子树的最右节点, 同时完成 flatten 工作

 

代码:

代码的逻辑有些乱

class Solution {public:    void flatten(TreeNode *root) {		if(root == NULL)			return;        preorder(root);    }	TreeNode* preorder(TreeNode *root) {		if(root->left == NULL && root->right == NULL)			return root;		TreeNode *rc = root->right;		TreeNode *rl;		if(root->left != NULL) {			root->right = root->left;			rl = preorder(root->left);			rl->right =rc;		}		root->left = NULL;		if(rc != NULL)			return preorder(rc);		else			return rl; 	}};

  

 

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

你可能感兴趣的文章
App工程结构搭建:几种常见Android代码架构分析
查看>>
使用openssl进行证书格式转换
查看>>
ZOJ 3777 Problem Arrangement
查看>>
虚拟机类加载机制
查看>>
Callable和Future
查看>>
installshield12如何改变默认安装目录
查看>>
少用数字来作为参数标识含义
查看>>
ScrollView中嵌套ListView
查看>>
JAVA虚拟机05--面试必问之JVM原理
查看>>
Algs4-2.3.1如何切分数组
查看>>
uva 10815 - Andy's First Dictionary(快排、字符串)
查看>>
观察者模式
查看>>
SQL性能优化:如何定位网络性能问题
查看>>
在properties.xml中定义变量,在application.xml中取值问题
查看>>
js 数组
查看>>
Linux scp命令详解
查看>>
struct和typedef struct
查看>>
RPC框架Thrift例子-PHP调用C++后端程序
查看>>
cell reuse & disposebag
查看>>
【故障处理】ORA-12545: Connect failed because target host or object does not exist
查看>>