gpt4 book ai didi

algorithm - 我们可以使用 Morris 遍历进行后序吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:24:43 24 4
gpt4 key购买 nike

我访问了很多网站,但找不到任何用于 Morris postOrder 遍历的算法。我知道我们可以对 preOrder 和 inOrder 使用 Morris 算法。如果有人向我指出 postOrder Morris 算法(如果存在),那将会有很大帮助。

最佳答案

一种更简单的方法是执行与预序莫里斯遍历对称相反的操作,并以相反的顺序打印节点。

    TreeNode* node = root;
stack<int> s;
while(node) {
if(!node->right) {
s.push(node->val);
node = node->left;
}
else {
TreeNode* prev = node->right;

while(prev->left && prev->left != node)
prev = prev->left;

if(!prev->left) {
prev->left = node;
s.push(node->val);
node = node->right;
}
else {
node = node->left;
prev->left = NULL;
}
}
}

while(!s.empty()) {
cout << s.top() << " ";
s.pop();
}

cout << endl;

关于algorithm - 我们可以使用 Morris 遍历进行后序吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36384599/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com