leetcode: Binary Tree Postorder Traversal

来源:互联网 发布:仙桃广电网络客服电话 编辑:程序博客网 时间:2024/04/29 01:57

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

For example:
Given binary tree {1,#,2,3},

   1    \     2    /   3

return [1,3,2].

Note: Recursive solution is trivial, could you do it iteratively?

confused what "{1,#,2,3}" means? > read more on how binary tree is serialized on OJ.

题目描述:

二叉树的中序遍历。先遍历左子树,再遍历根节点,再再遍历右子树。

代码实现:

/** * 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> inorderTraversal(TreeNode* root) {    vector<int> re;    const TreeNode *p;    p=root;    stack<const TreeNode *>s;    while(!s.empty() || p!=NULL)    {        if(p!=NULL)        {            s.push(p);            p=p->left;        }        else        {            p=s.top();            s.pop();            re.push_back(p->val);            p=p->right;        }    }    return re;    }};

1 0
原创粉丝点击