輸出單層結(jié)點

題目:

對于一棵二叉樹,請設(shè)計一個算法,創(chuàng)建含有某一深度上所有結(jié)點的鏈表。

給定二叉樹的根結(jié)點指針TreeNode* root,以及鏈表上結(jié)點的深度,請返回一個鏈表ListNode,代表該深度上所有結(jié)點的值,請按樹上從左往右的順序鏈接,保證深度不超過樹的高度,樹上結(jié)點的值為非負(fù)整數(shù)且不超過100000。

思路:
每次往下一層,dep-1

# -*- coding:utf-8 -*-
class ListNode:
    def __init__(self, x):
        self.val = x
        self.next = None
class TreeNode:
    def __init__(self, x):
        self.val = x
        self.left = None
        self.right = None
class TreeLevel:
    l = ListNode(-1)
    p = l
    def getTreeLevel(self, root, dep):
        # write code here
        if not root or dep == 0:
            return
        if dep == 1:
            self.p.next = ListNode(root.val)
            self.p = self.p.next
        else:
            self.getTreeLevel(root.left,dep-1)
            self.getTreeLevel(root.right,dep-1)
        return self.l.next

if __name__ == '__main__':
    head = TreeNode(1)
    head.left = TreeNode(2)
    head.right = TreeNode(3)

    head.left.left = TreeNode(4)
    head.left.right = TreeNode(5)

    head.left.left.left = TreeNode(6)
    head.left.left.right = TreeNode(7)

    s = TreeLevel()
    s.getTreeLevel(head,2)
    print(s.l.next.val)


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容