二叉树遍历

来源:互联网 发布:java log4j 实例 编辑:程序博客网 时间:2024/06/16 23:02

后序遍历

/** * Definition of TreeNode: * class TreeNode { * public: *     int val; *     TreeNode *left, *right; *     TreeNode(int val) { *         this->val = val; *         this->left = this->right = NULL; *     } * } */class Solution {    /**     * @param root: The root of binary tree.     * @return: Postorder in vector which contains node values.     */public:    vector<int> vec;    vector<int> postorderTraversal(TreeNode *root) {        // write your code here        if(root==NULL)            return vec;        if(root->left!=NULL)            postorderTraversal(root->left);        if(root->right!=NULL)            postorderTraversal(root->right);        vec.push_back(root->val);        return vec;    }};

等价二叉树

/** * Definition of TreeNode: * class TreeNode { * public: *     int val; *     TreeNode *left, *right; *     TreeNode(int val) { *         this->val = val; *         this->left = this->right = NULL; *     } * } */class Solution {public:    /**     * @aaram a, b, the root of binary trees.     * @return true if they are identical, or false.     */    bool isIdentical(TreeNode* a, TreeNode* b) {        // Write your code here        if(a==NULL&&b==NULL)             return true;          if((a!=NULL&&b==NULL)||(a==NULL&&b!=NULL))             return false;        if(a->val==b->val)             return isIdentical(a->left, b->left) && isIdentical(a->right, b->right);        return false;     }};