劍指32 從上到下列印二叉樹

2021-08-18 20:22:11 字數 1220 閱讀 3863

按層遍歷二叉樹 並不分行列印

方法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 從上到下列印二叉樹

普通的列印二叉樹很簡單,使用佇列就可以解決。但是我做的這個題目是要將每一層的節點都存起來,而且不同層之間是分開儲存的。其中有個問題就是我們如何去判斷某一層是遍歷完了,然後要到下一層了呢。我們可以這樣解決,記住每層的個數,這樣遍歷上一層時我們知道上一層個數了就不會遍歷下一層的節點 而遍歷過程中也要把子...