zoukankan      html  css  js  c++  java
  • 剑指offer——二叉树的序列化

    题目描述:二叉树被记录成文件的过程叫做二叉树的序列化。序列化的方法有很多,这里我们采用括号序列的方法将其序列化,所谓括号序列指的是对于一个节点生成一个括号,括号内是其子树的括号序列,其中左儿子(若存在)的括号在前,右儿子(若存在)的括号在后。对于给定的树,请设计高效的算法,将其序列化。

    给定一个树的根节点指针root,请返回一个字符串

    ,代表其序列化后的括号序列。

    思路:使用递归,很容易理解。

    C++代码:

    struct TreeNode {
    	int val;
    	struct TreeNode *left;
    	struct TreeNode *right;
    	TreeNode(int x) :
    			val(x), left(NULL), right(NULL) {
    	}
    };
    
    class TreeToSequence {
    public:
    	string toSequence(TreeNode* root) {
    		string res;
    		if (root) 
    			res = "(" + toSequence(root->left) + toSequence(root->right) + ")";
    		return res;
    	}
    };
    天上我才必有用,千金散尽还复来!
  • 相关阅读:
    jQuery的面试题
    DOM面试题
    JavaScript高级
    Bootstrap面试题
    ajax面试题
    CSS3面试题
    MySQL的列约束
    MySQL数据库介绍
    java数据类型之间的转换
    java中变量和标识符名命名规范
  • 原文地址:https://www.cnblogs.com/lutaishi/p/13436267.html
Copyright © 2011-2022 走看看