劍指offer第四題

2021-07-29 23:13:10 字數 561 閱讀 3425

輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。例如輸入前序遍歷序列和中序遍歷序列,則重建二叉樹並返回。

通過root結點可以把中序遍歷分成兩部分。可以知道左子樹的個數和右子樹的個數。從而求出前序遍歷和中序遍歷相對應的左子樹和右子樹。

並通過遞迴求出。

遞迴方式類似快排。

/**

* definition for binary tree

* public class treenode

* }*/public

class

solution

public treenode binarytree(int pre,int startpre,int endpre,int in, int startin,int endin)

treenode root=new treenode(pre[startpre]);

for(int i=startin;i1;i++)

}return root;

}}

4 劍指offer第四題(python)

問題 輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。例如輸入前序遍歷序列和中序遍歷序列,則重建二叉樹並返回。coding utf 8 class treenode def init self,x self.val x self.lef...

劍指Offer第三第四道題

第三題 輸入乙個鍊錶,從尾到頭列印鍊錶每個節點的值。思路 始終從列表的第一項插入資料。coding utf 8 class listnode def init self,x self.val x self.next none class solution 返回從尾部到頭部的列表值序列,例如 1,2,...

劍指offer leetcode 第四題

輸入乙個鍊錶的頭節點,從尾到頭反過來返回每個節點的值 用陣列返回 輸入 head 1,3,2 輸出 2,3,1 definition for singly linked list.public class listnode class solution stack.push temp.val tem...