劍指offer題19 二叉樹的映象

2021-08-15 09:58:56 字數 469 閱讀 4095

請完成乙個函式,輸入乙個二叉樹,該函式輸出它的映象。

二叉樹結點的定義如下:

struct binarytreenode ;
需要嘗試通過舉例畫圖,然後可以總結出求一棵樹映象的過程:我們先前序遍歷這棵樹的每個結點,如果遍歷到的結點有子結點,就交換它的兩個子結點。當交換完所有非葉子結點的左右子結點後,就得到了樹的映象。

void mirrorrecursively(binarytreenode* pnode) 

binarytreenode* ptemp = pnode->m_pleft;

pnode->m_pleft = pnode->m_pright;

pnode->m_pright = ptemp;

if (pnode->m_pleft)

if (pnode->m_pright)

}

劍指offer 19 二叉樹的映象

先序遍歷樹的每個結點,若遍歷到的結點有子節點,則交換它的兩個結點。遞迴方式 如果proot為null,則為空樹,返回 如果proot不為null,交換proot左右結點,然後分別求左右子樹的映象 非遞迴方式 步驟描述 借助棧 首先,將根節點proot入棧 第一步 當佇列未空時執行第二步 第二步 出棧...

劍指offer 19 二叉樹的映象

二叉樹的映象 映象即就是在鏡子中所成的像 實現 ps 搜尋二叉樹和普通二叉樹實現方法是相同的,只是兩種建樹過程有所不同,此處實現的是搜尋二叉樹。1.遞迴實現 pragma once include include include using namespace std template struct...

劍指offer19 二叉樹的深度

題目描述 輸入一棵二叉樹,求該樹的深度。從根結點到葉結點依次經過的結點 含根 葉結點 形成樹的一條路徑,最長路徑的長度為樹的深度。解題思路 做深度優先搜尋,找出最大路徑長度 coding utf 8 class treenode def init self,x self.val x self.lef...