144. Binary Tree Preorder Traversal &&94. Binary Tree Inorder Traversal

来源:互联网 发布:一梦似瑶台,心知玉女来 编辑:程序博客网 时间:2024/05/23 19:16

题目:先序遍历

Given a binary tree, return the preorder traversal of its nodes’ values.

For example:
Given binary tree {1,#,2,3},
1
\
2
/
3
return [1,2,3].
Note: Recursive solution is trivial, could you do it iteratively?


翻译

用先序遍历排列:

源码

/** * 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:    vector<int> result;    vector<int> preorderTraversal(TreeNode* root) {        if(root!=NULL){            result.push_back(root->val);            preorderTraversal(root->left);            preorderTraversal(root->right);        }          return result;    }};

题目:中序遍历

Given a binary tree, return the inorder traversal of its nodes’ values.

For example:Given binary tree {1,#,2,3},   1    \     2    /   3return [1,3,2].

给定一个二叉树,返回节点值得中序遍历。
中序遍历:左中右;

/** * 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:    vector<int> result;    vector<int> inorderTraversal(TreeNode* root) {        if(root!=NULL){            inorderTraversal(root->left);            result.push_back(root->val);            inorderTraversal(root->right);        }        return result;    }};

拓展:

先序遍历二叉树:(若二叉树为空,则空操作)
先访问根节点;先序遍历左子树,先序遍历右子树;

中序遍历二叉树:
中序遍历左子树;访问根节点;中序遍历右子树;

后序遍历二叉树:
后序遍历左子树;后序遍历右子树;访问根节点。

0 0
原创粉丝点击