按層遍歷二叉樹 並不分行列印
方法1: 用雙向佇列輔助
/*
struct treenode
};*/
class solution
return result;
}};
方法2:單向佇列
入隊不判空出隊判空的缺點是需要進行多次出隊判空操作 優點是**簡潔
/*
struct treenode
};*/
class solution
return r;
}};
按層遍歷並分行列印
第一種 入不看空 出判空
void printabc(binarytreenode* proot)
continue;
}std::cout << proot->m_nvalue;
q.push(proot->m_pleft);
q.push(proot->m_pright);
nextline+=2;
if(curline==0)
}return;
}
//入判空
void printo(binarytreenode* proot)
if(proot->m_pright)
if(curline==0)
}return;
}
按層遍歷二叉樹 按行列印 z字列印 從左到右 從右到左交叉
2個棧
void printabc(binarytreenode* proot)
else//從左子樹到右子樹
if(sup[current].empty())
}return;
}
/**********************之字形列印二叉樹********************************/
/*struct treenode
};*/
class solution
else
}res.push_back(tmp);
current = 1 - current;
next = 1- next;
}return res;
}};
32 從上到下列印二叉樹
從上到下列印出二叉樹的每個節點,同一層的節點按照從左到右的順序列印。例如 給定二叉樹 3,9,20,null,null,15,7 返回 3,9,20,15,7 佇列 definition for a binary tree node.class treenode def init self,x se...
劍指Offer 從上到下列印二叉樹
2.題目 2 3.題目 3 不分行從上到下列印二叉樹。從上到下列印出二叉樹的每個結點,同一層的結點按照從左到右的順序列印。輸入 8 6 10 57 911輸出 8610 57911這個其實就是層序遍歷。每次列印乙個結點的時候,若該結點有子結點,則讓該結點的子結點放到乙個佇列的末尾。接下來到佇列的首部...
劍指offer 從上到下列印二叉樹
普通的列印二叉樹很簡單,使用佇列就可以解決。但是我做的這個題目是要將每一層的節點都存起來,而且不同層之間是分開儲存的。其中有個問題就是我們如何去判斷某一層是遍歷完了,然後要到下一層了呢。我們可以這樣解決,記住每層的個數,這樣遍歷上一層時我們知道上一層個數了就不會遍歷下一層的節點 而遍歷過程中也要把子...