LeetCode:Binary Tree Inorder Traversal

来源:互联网 发布:react native 调用js 编辑:程序博客网 时间:2024/05/18 01:02

问题描述:

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?

思路:借助栈来实现树的中序遍历。

代码:

vector<int> inorderTraversal(TreeNode * root){    vector<int> inorderSequence;    stack<TreeNode *> treeNodeStack;    TreeNode * node = root;    if(node == NULL)        return inorderSequence;    while(node != NULL || !treeNodeStack.empty())    {        while(node != NULL)        {            treeNodeStack.push(node);            node = node->left;        }        node = treeNodeStack.top();        treeNodeStack.pop();        inorderSequence.push_back(node->val);        node = node->right;    }}




0 0
原创粉丝点击