// 中序遍歷,左中右
var TreeNode = {
val: 1,
left: {
val: 2,
left: {
val: 4,
},
right: {
val: 5
}
},
right: {
val: 3,
left: {
val: 6,
},
right: {
val: 7
}
}
};
var inOrderRecur = function (root) {
var list = [];
var inOrder = function(root){
if (root === undefined) {
return root;
}
inOrder(root.left);
list.push(root.val);
inOrder(root.right);
}
inOrder(root)
return list;
}
var inOrderUnRecur = function(root){
var stack = [];
var list = [];
var head = root;
while(stack.length !== 0 || head !== undefined){
while(head !== undefined){
stack.push(head);
head = head.left;
}
if(stack.length !== 0){
head = stack.pop();
list.push(head.val);
head = head.right;
}
}
return list;
};
// var listRecur = inOrderRecur(TreeNode);
// console.log('遞歸中序遍歷',listRecur);
var listUnRecur = inOrderUnRecur(TreeNode);
console.log('非遞歸中序遍歷',listUnRecur);
// [4, 2, 5, 1, 6, 3, 7]
二叉樹中序遍歷JavaScript遞歸和非遞歸實(shí)現(xiàn)方法
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
相關(guān)閱讀更多精彩內(nèi)容
- 注:本文來自 左程云的書《程序員代碼面試指南》 題目:分別用遞歸和非遞歸方法,實(shí)現(xiàn)二叉樹的先序遍歷(根左右)、中序...
- 遞歸 比較簡單,直接看代碼即可. 非遞歸 先序遍歷 申請(qǐng)一個(gè)棧,記為s1,將頭結(jié)點(diǎn)壓棧. 每次從棧頂彈出節(jié)點(diǎn)nod...
- 一. 前序遍歷 DLRleetcode地址使用棧,先壓入根節(jié)點(diǎn),每次棧頂彈出一個(gè)節(jié)點(diǎn)后先壓入這個(gè)節(jié)點(diǎn)的右孩子,再...