欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python實(shí)現(xiàn)二叉樹(shù)的常見(jiàn)遍歷操作總結(jié)【7種方法】

 更新時(shí)間:2019年03月06日 14:45:11   作者:wenkenza5368  
這篇文章主要介紹了Python實(shí)現(xiàn)二叉樹(shù)的常見(jiàn)遍歷操作,結(jié)合實(shí)例形式總結(jié)分析了二叉樹(shù)的前序、中序、后序、層次遍歷中的迭代與遞歸等7種操作方法,需要的朋友可以參考下

本文實(shí)例講述了Python實(shí)現(xiàn)二叉樹(shù)的常見(jiàn)遍歷操作。分享給大家供大家參考,具體如下:

二叉樹(shù)的定義:

class TreeNode:
  def __init__(self, x):
    self.val = x
    self.left = None
    self.right = None

二叉樹(shù)的前序遍歷

遞歸

def preorder(root,res=[]):
  if not root:
    return 
  res.append(root.val)
  preorder(root.left,res)
  preorder(root.right,res)
  return res

迭代

def preorder(root):
  res=[]
  if not root: 
    return []
  stack=[root]
  while stack:
    node=stack.pop()
    res.append(node.val)
    if node.right:
      stack.append(node.right)
    if node.left:
      stack.append(node,left)
  return res

二叉樹(shù)的中序遍歷

遞歸

def inorder(root,res=[]):
  if not root:
    return 
  inorder(root.left,res)
  res.append(root.val)
  inorder(root.right,res)
  return res

迭代

def inorder(root):
  stack=[]
  node=root
  res=[]
  while stack or node:
    while node:
      stack.append(node)
      node=node.left
    node=stack.pop()
    res.append(node.val)
    node=node.right
  return res

二叉樹(shù)的后序遍歷

遞歸

def laorder(root,res=[]):
  if not root:
    return 
  laorder(root.left,res)
  laorder(root.right,res)
  res.append(root.val)
  return res

迭代

def laorder(root):
  stack=[root]
  res=[]
  while stack:
    node=stack.pop()
    if node.left:
      stack.append(node.left)
    if node.right:
      stack.append(node.right)
    res.append(node.val)
  return res[::-1]

二叉樹(shù)的層次遍歷

迭代

def levelorder(root):
  queue=[root]
  res=[]
  while queue:
    node=queue.pop(0)
    if node.left: 
      queue.append(node.left)
    if node.right:
      queue.append(node.right)
    res.append(node.val)
  return res

更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python加密解密算法與技巧總結(jié)》、《Python編碼操作技巧總結(jié)》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》及《Python入門(mén)與進(jìn)階經(jīng)典教程

希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • PyQt5+serial模塊實(shí)現(xiàn)一個(gè)串口小工具

    PyQt5+serial模塊實(shí)現(xiàn)一個(gè)串口小工具

    這篇文章主要為大家詳細(xì)介紹了如何利用PyQt5和serial模塊實(shí)現(xiàn)一個(gè)簡(jiǎn)單的串口小工具,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-01-01
  • 分享Pytest fixture參數(shù)傳遞的幾種方式

    分享Pytest fixture參數(shù)傳遞的幾種方式

    這篇文章主要分享的是Pytest fixture參數(shù)傳遞的幾種方式,文章基于python的相關(guān)資料展開(kāi)對(duì)主題的詳細(xì)介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-04-04
  • 使用pycharm在本地開(kāi)發(fā)并實(shí)時(shí)同步到服務(wù)器

    使用pycharm在本地開(kāi)發(fā)并實(shí)時(shí)同步到服務(wù)器

    這篇文章主要介紹了使用pycharm在本地開(kāi)發(fā)并實(shí)時(shí)同步到服務(wù)器,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • Python中連接字符串的7種方法小結(jié)

    Python中連接字符串的7種方法小結(jié)

    Python?提供了將一個(gè)或多個(gè)字符串連接在一起的多種方法,本文主要介紹了Python中連接字符串的7種方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-06-06
  • Python實(shí)現(xiàn)RabbitMQ6種消息模型的示例代碼

    Python實(shí)現(xiàn)RabbitMQ6種消息模型的示例代碼

    這篇文章主要介紹了Python實(shí)現(xiàn)RabbitMQ6種消息模型的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • Python類(lèi)方法__init__和__del__構(gòu)造、析構(gòu)過(guò)程分析

    Python類(lèi)方法__init__和__del__構(gòu)造、析構(gòu)過(guò)程分析

    這篇文章主要介紹了Python類(lèi)方法__init__和__del__構(gòu)造、析構(gòu)過(guò)程分析,本文分析了什么時(shí)候構(gòu)造、什么時(shí)候析構(gòu)、成員變量如何處理、Python中的共享成員函數(shù)如何訪問(wèn)等問(wèn)題,需要的朋友可以參考下
    2015-03-03
  • python pandas loc 布爾索引示例說(shuō)明

    python pandas loc 布爾索引示例說(shuō)明

    loc跟iloc的區(qū)別,首先loc是location的意思,和iloc中i的意思是指integer,所以它只接受整數(shù)作為參數(shù),詳情見(jiàn)下面
    2022-03-03
  • Python中SOAP項(xiàng)目的介紹及其在web開(kāi)發(fā)中的應(yīng)用

    Python中SOAP項(xiàng)目的介紹及其在web開(kāi)發(fā)中的應(yīng)用

    這篇文章主要介紹了Python中的SOAP項(xiàng)目及其在web開(kāi)發(fā)中的應(yīng)用,本文來(lái)自于IBM官方網(wǎng)站技術(shù)文檔,需要的朋友可以參考下
    2015-04-04
  • 用pytorch的nn.Module構(gòu)造簡(jiǎn)單全鏈接層實(shí)例

    用pytorch的nn.Module構(gòu)造簡(jiǎn)單全鏈接層實(shí)例

    今天小編就為大家分享一篇用pytorch的nn.Module構(gòu)造簡(jiǎn)單全鏈接層實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-01-01
  • 快速解決cv2.imread()讀取圖像為BGR的問(wèn)題

    快速解決cv2.imread()讀取圖像為BGR的問(wèn)題

    這篇文章主要介紹了快速解決cv2.imread()讀取圖像為BGR的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-03-03

最新評(píng)論