二叉树的操作(前,中,后序遍历也叫深度优先遍历,非空结点的个数)递归实现
生活随笔
收集整理的這篇文章主要介紹了
二叉树的操作(前,中,后序遍历也叫深度优先遍历,非空结点的个数)递归实现
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
定義一個二叉樹的結(jié)點
二叉樹的前序遍歷,
先訪問根結(jié)點,再訪問左,再訪問右。
每次訪問都要先看根結(jié)點是否為空,然后打印根結(jié)點,把此時根結(jié)點的左結(jié)點作為下一次遞歸的根結(jié)點,當(dāng)把左結(jié)點遍歷完后,再遍歷右結(jié)點。其實很好想,每回只看一個結(jié)點,想一個結(jié)點怎么遍歷,再用遞歸一寫就行,實在不行就用筆畫一畫,多用腦子把程序跑幾遍就好。
中序遍歷,先訪問左結(jié)點,再訪問根結(jié)點,最后訪問右結(jié)點。
后序遍歷
只要根結(jié)點不為空,就把個數(shù)加一,然后把根結(jié)點的左結(jié)點作為下一次遞歸的根結(jié)點,然后再把此時根結(jié)點的右結(jié)點作為下一次遞歸打的右結(jié)點
第一次判斷,如果根結(jié)點為空,返回0,如果不為空,left記錄永遠(yuǎn)把當(dāng)前根結(jié)點的左結(jié)點作為下一次遞歸的根結(jié)點,每次進(jìn)到下一層,再進(jìn)行一次根結(jié)點判斷,如此反復(fù),右結(jié)點也是如此。
總結(jié)
以上是生活随笔為你收集整理的二叉树的操作(前,中,后序遍历也叫深度优先遍历,非空结点的个数)递归实现的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: DNF街霸穿什么好
- 下一篇: 二叉树的相关题(叶子结点个数,最大深度,